Welcome to Abella 2.0.2-dev
Abella < Kind name, action, proc type.
Abella < Type null proc.
Abella < Type taup proc -> proc.
Abella < Type plus, par proc -> proc -> proc.
Abella < Type match, out name -> name -> proc -> proc.
Abella < Type in name -> (name -> proc) -> proc.
Abella < Type nu (name -> proc) -> proc.
Abella < Type repl proc -> proc.
Abella < Type tau action.
Abella < Type up, dn name -> name -> action.
Abella < Type a, b name.
Abella < Define one : proc -> action -> proc -> prop,	
oneb : proc -> (name -> action) -> (name -> proc) -> prop by 
one (taup P) tau P;
one (out X Y P) (up X Y) P;
one (plus P Q) A R := one P A R;
one (plus P Q) A R := one Q A R;
one (par P Q) A (par P1 Q) := one P A P1;
one (par P Q) A (par P Q1) := one Q A Q1;
one (nu (x\P x)) A (nu (x\Q x)) := nabla x, one (P x) A (Q x);
one (par P Q) tau (nu (y\par (M y) (N y))) := exists X, oneb P (dn X) M /\ oneb Q (up X) N;
one (par P Q) tau (nu (y\par (M y) (N y))) := exists X, oneb P (up X) M /\ oneb Q (dn X) N;
one (par P Q) tau (par (M Y) T) := exists X, oneb P (dn X) M /\ one Q (up X Y) T;
one (par P Q) tau (par R (M Y)) := exists X, oneb Q (dn X) M /\ one P (up X Y) R;
one (repl P) A (par (repl P) P1) := one P A P1;
one (repl P) tau (par (par P1 (M Y)) (repl P)) := exists X, one P (up X Y) P1 /\ oneb P (dn X) M;
one (repl P) tau (par (nu (y\par (N y) (M y))) (repl P)) := exists X, oneb P (up X) N /\ oneb P (dn X) M;
oneb (in X M) (dn X) M;
oneb (plus P Q) A M := oneb P A M;
oneb (plus P Q) A M := oneb Q A M;
oneb (par P Q) A (x\par (M x) Q) := oneb P A M;
oneb (par P Q) A (x\par P (N x)) := oneb Q A N;
oneb (nu (x\P x)) A (y\nu (x\Q x y)) := nabla x, oneb (P x) A (y\Q x y);
oneb (nu (x\M x)) (up X) N := nabla y, one (M y) (up X y) (N y);
oneb (repl P) A (x\par (repl P) (M x)) := oneb P A M.
Abella < CoDefine bisim_up_to : (proc -> proc -> proc -> proc -> prop) -> proc -> proc -> prop by 
bisim_up_to Upto P Q := (forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
  Upto P1 P2 Q1 Q2 /\ bisim_up_to Upto P2 Q2))) /\ (forall X M,
  oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
  Upto (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to Upto (M2 W) (N2 W)))) /\
  (forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
  (exists M2 N2, nabla W, Upto (M W) (M2 W) (N W) (N2 W) /\
  bisim_up_to Upto (M2 W) (N2 W)))) /\ (forall A Q1, one Q A Q1 ->
  (exists P1, one P A P1 /\ (exists P2 Q2, Upto P1 P2 Q1 Q2 /\
  bisim_up_to Upto P2 Q2))) /\ (forall X N, oneb Q (dn X) N -> (exists M,
  oneb P (dn X) M /\ (exists M2 N2, forall W,
  Upto (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to Upto (M2 W) (N2 W)))) /\
  (forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
  (exists M2 N2, nabla W, Upto (M W) (M2 W) (N W) (N2 W) /\
  bisim_up_to Upto (M2 W) (N2 W)))).
Abella < Define refl_t : proc -> proc -> proc -> proc -> prop by 
refl_t P P Q Q.
Abella < CoDefine bisimr : proc -> proc -> prop by 
bisimr P Q := bisim_up_to refl_t P Q.
Abella < Define equally_structured : (proc -> proc -> prop) -> prop by 
equally_structured Pred := forall X1 X2 Y1 Y2, Pred X1 X2 -> Y1 = X1 -> Y2 = X2 -> Pred Y1 Y2.
Abella < Theorem equality_for_structured_refl : 
equally_structured (bisim_up_to refl_t).


  ============================
   equally_structured (bisim_up_to refl_t)

equality_for_structured_refl < unfold.


  ============================
   forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
     bisim_up_to refl_t Y1 Y2

equality_for_structured_refl < intros.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to refl_t X1 X2
  H2 : Y1 = X1
  H3 : Y2 = X2
  ============================
   bisim_up_to refl_t Y1 Y2

equality_for_structured_refl < case H2.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to refl_t X1 X2
  H3 : Y2 = X2
  ============================
   bisim_up_to refl_t X1 Y2

equality_for_structured_refl < case H3.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to refl_t X1 X2
  ============================
   bisim_up_to refl_t X1 X2

equality_for_structured_refl < search.
Proof completed.
Abella < Theorem bisim_refl : 
forall P, bisim_up_to refl_t P P.


  ============================
   forall P, bisim_up_to refl_t P P

bisim_refl < coinduction.


  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall P, bisim_up_to refl_t P P #

bisim_refl < intros.

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   bisim_up_to refl_t P P #

bisim_refl < unfold.
Subgoal 1:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall A P1, one P A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to refl_t P P +
  H1 : one P A P1
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < apply CH with P = P1.
Subgoal 1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to refl_t P P +
  H1 : one P A P1
  H2 : bisim_up_to refl_t P1 P1 +
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 2:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (M W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < split.
Subgoal 2.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   oneb P (dn X) M

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (M W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists N2, forall W, refl_t (M W) (M W) (M W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   forall W, refl_t (M W) (M W) (M W) (M W) /\
     bisim_up_to refl_t (M W) (M W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 2.2:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  ============================
   refl_t (M W) (M W) (M W) (M W) /\ bisim_up_to refl_t (M W) (M W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < apply CH with P = M W.
Subgoal 2.2:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) M
  H2 : bisim_up_to refl_t (M W) (M W) +
  ============================
   refl_t (M W) (M W) (M W) (M W) /\ bisim_up_to refl_t (M W) (M W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 3:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 3:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 3:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (M W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < split.
Subgoal 3.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   oneb P (up X) M

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (M W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (M W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists M.
Subgoal 3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   nabla W, refl_t (M W) (M W) (M W) (M W) /\
     bisim_up_to refl_t (M W) (M W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  ============================
   refl_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to refl_t (M n1) (M n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < apply CH with P = M n1.
Subgoal 3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) M
  H2 : bisim_up_to refl_t (M n1) (M n1) +
  ============================
   refl_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to refl_t (M n1) (M n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 4:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 4:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to refl_t P P +
  H1 : one P A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < apply CH with P = Q1.
Subgoal 4:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to refl_t P P +
  H1 : one P A Q1
  H2 : bisim_up_to refl_t Q1 Q1 +
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 5:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 5:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists N.
Subgoal 5:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   oneb P (dn X) N /\ (exists M2 N2, forall W,
     refl_t (N W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < split.
Subgoal 5.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   oneb P (dn X) N

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (N W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists M2 N2, forall W, refl_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists N.
Subgoal 5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists N2, forall W, refl_t (N W) (N W) (N W) (N2 W) /\
     bisim_up_to refl_t (N W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < exists N.
Subgoal 5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   forall W, refl_t (N W) (N W) (N W) (N W) /\
     bisim_up_to refl_t (N W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 5.2:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  ============================
   refl_t (N W) (N W) (N W) (N W) /\ bisim_up_to refl_t (N W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < apply CH with P = N W.
Subgoal 5.2:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (dn X) N
  H2 : bisim_up_to refl_t (N W) (N W) +
  ============================
   refl_t (N W) (N W) (N W) (N W) /\ bisim_up_to refl_t (N W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < search.
Subgoal 6:

  Variables: P
  CH : forall P, bisim_up_to refl_t P P +
  ============================
   forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_refl < intros.
Subgoal 6:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_refl < exists N.
Subgoal 6:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   oneb P (up X) N /\ (exists M2 N2, nabla W,
     refl_t (N W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_refl < split.
Subgoal 6.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   oneb P (up X) N

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (N W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisim_refl < search.
Subgoal 6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   exists M2 N2, nabla W, refl_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisim_refl < exists N.
Subgoal 6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   exists N2, nabla W, refl_t (N W) (N W) (N W) (N2 W) /\
     bisim_up_to refl_t (N W) (N2 W) +

bisim_refl < exists N.
Subgoal 6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   nabla W, refl_t (N W) (N W) (N W) (N W) /\
     bisim_up_to refl_t (N W) (N W) +

bisim_refl < intros.
Subgoal 6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  ============================
   refl_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to refl_t (N n1) (N n1) +

bisim_refl < apply CH with P = N n1.
Subgoal 6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to refl_t P P +
  H1 : oneb P (up X) N
  H2 : bisim_up_to refl_t (N n1) (N n1) +
  ============================
   refl_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to refl_t (N n1) (N n1) +

bisim_refl < search.
Proof completed.
Abella < Theorem bisim_sym : 
forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P.


  ============================
   forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P

bisim_sym < coinduction.


  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  ============================
   forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P #

bisim_sym < intros.

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H1 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to refl_t Q P #

bisim_sym < case H1.

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t Q P #

bisim_sym < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall A P1, one Q A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H5 to H8.
Subgoal 1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists P2.
Subgoal 1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2 /\ (exists P3 Q2, refl_t P1 P3 P2 Q2 /\
     bisim_up_to refl_t P3 Q2 +)

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2

Subgoal 1.2 is:
 exists P3 Q2, refl_t P1 P3 P2 Q2 /\ bisim_up_to refl_t P3 Q2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists P3 Q2, refl_t P1 P3 P2 Q2 /\ bisim_up_to refl_t P3 Q2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists P1.
Subgoal 1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q2, refl_t P1 P1 P2 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists P2.
Subgoal 1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   refl_t P1 P1 P2 P2 /\ bisim_up_to refl_t P1 P2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   refl_t P1 P1 P2 P2

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 P2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A P1
  H9 : one P A P2
  H10 : refl_t P2 P3 P1 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to refl_t P1 P2 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H10.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one Q A Q3
  H9 : one P A P3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to refl_t Q3 P3 +

Subgoal 2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H6 to H8.
Subgoal 2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M1.
Subgoal 2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M1 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (M1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 2.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M1

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (M1 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M1.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (M1 W) (M1 W) /\
     bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (M1 W) (M1 W) /\ bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (M1 W) (M1 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H10 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H11 : refl_t (M1 W) (M2 W) (M W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H11.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : M W = N2 W
  H14 : M1 W = M2 W
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : M W = N2 W
  H14 : M1 W = M2 W
  H15 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H15.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : M W = N2 W
  H14 : M1 W = M2 W
  H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H16 to H12 H14 H13.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) M
  H9 : oneb P (dn X) M1
  H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : M W = N2 W
  H14 : M1 W = M2 W
  H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H17 : bisim_up_to refl_t (M1 W) (M W)
  ============================
   bisim_up_to refl_t (M W) (M1 W) +

Subgoal 3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H7 to H8.
Subgoal 3:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M1.
Subgoal 3:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M1 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (M1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 3.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M1

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M.
Subgoal 3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (M1 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists M1.
Subgoal 3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (M1 W) (M1 W) /\
     bisim_up_to refl_t (M W) (M1 W) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (M1 n1) (M1 n1) /\
     bisim_up_to refl_t (M n1) (M1 n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (M1 n1) (M1 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (M1 n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 3.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) M
  H9 : oneb P (up X) M1
  H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (M1 n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H10.
Subgoal 3.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) (z1\N2 z1)
  H9 : oneb P (up X) (z1\M2 z1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N2 n1) (M2 n1) +

Subgoal 4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  ============================
   exists P1, one Q A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H2 to H8.
Subgoal 4:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one Q A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists Q2.
Subgoal 4:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\
     bisim_up_to refl_t P2 Q3 +)

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2

Subgoal 4.2 is:
 exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\ bisim_up_to refl_t P2 Q3 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\ bisim_up_to refl_t P2 Q3 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists Q2.
Subgoal 4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q3, refl_t Q2 Q2 Q1 Q3 /\ bisim_up_to refl_t Q2 Q3 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists Q1.
Subgoal 4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   refl_t Q2 Q2 Q1 Q1 /\ bisim_up_to refl_t Q2 Q1 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   refl_t Q2 Q2 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t Q2 Q1 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A Q1
  H9 : one Q A Q2
  H10 : refl_t Q1 P3 Q2 Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to refl_t Q2 Q1 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H10.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : one P A P3
  H9 : one Q A Q3
  H11 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to refl_t Q3 P3 +

Subgoal 5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  ============================
   exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H3 to H8.
Subgoal 5:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists N1.
Subgoal 5:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N1 /\ (exists M2 N2, forall W,
     refl_t (N1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 5.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N1

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists N1.
Subgoal 5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (N1 W) (N1 W) (N W) (N2 W) /\
     bisim_up_to refl_t (N1 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < exists N.
Subgoal 5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (N1 W) (N1 W) (N W) (N W) /\
     bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   refl_t (N1 W) (N1 W) (N W) (N W) /\ bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   refl_t (N1 W) (N1 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < search.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H10 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H11 : refl_t (N W) (M2 W) (N1 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H11.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : N1 W = N2 W
  H14 : N W = M2 W
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : N1 W = N2 W
  H14 : N W = M2 W
  H15 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < case H15.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : N1 W = N2 W
  H14 : N W = M2 W
  H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < apply H16 to H12 H14 H13.
Subgoal 5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) N
  H9 : oneb Q (dn X) N1
  H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : bisim_up_to refl_t (M2 W) (N2 W)
  H13 : N1 W = N2 W
  H14 : N W = M2 W
  H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H17 : bisim_up_to refl_t (N W) (N1 W)
  ============================
   bisim_up_to refl_t (N1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sym < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  ============================
   exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sym < apply H4 to H8.
Subgoal 6:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sym < exists N1.
Subgoal 6:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N1 /\ (exists M2 N2, nabla W,
     refl_t (N1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sym < split.
Subgoal 6.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N1

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisim_sym < search.
Subgoal 6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisim_sym < exists N1.
Subgoal 6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (N1 W) (N1 W) (N W) (N2 W) /\
     bisim_up_to refl_t (N1 W) (N2 W) +

bisim_sym < exists N.
Subgoal 6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (N1 W) (N1 W) (N W) (N W) /\
     bisim_up_to refl_t (N1 W) (N W) +

bisim_sym < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   refl_t (N1 n1) (N1 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (N1 n1) (N n1) +

bisim_sym < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   refl_t (N1 n1) (N1 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (N1 n1) (N n1) +

bisim_sym < search.
Subgoal 6.2.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) N
  H9 : oneb Q (up X) N1
  H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N1 n1) (N n1) +

bisim_sym < case H10.
Subgoal 6.2.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : oneb P (up X) (z1\M2 z1)
  H9 : oneb Q (up X) (z1\N2 z1)
  H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N2 n1) (M2 n1) +

bisim_sym < backchain CH.
Proof completed.
Abella < Theorem bisim_trans : 
forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
  bisim_up_to refl_t P R.


  ============================
   forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
     bisim_up_to refl_t P R

bisim_trans < coinduction.


  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  ============================
   forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
     bisim_up_to refl_t P R #

bisim_trans < intros.

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H1 : bisim_up_to refl_t P Q
  H2 : bisim_up_to refl_t Q R
  ============================
   bisim_up_to refl_t P R #

bisim_trans < case H1.

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H2 : bisim_up_to refl_t Q R
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t P R #

bisim_trans < case H2.

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t P R #

bisim_trans < unfold.
Subgoal 1:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 1:

  Variables: P, Q, R, A, P1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P1
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H3 to H15.
Subgoal 1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P1
  H16 : one Q A Q2
  H17 : refl_t P1 P3 Q2 Q3
  H18 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H9 to H16.
Subgoal 1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P1
  H16 : one Q A Q2
  H17 : refl_t P1 P3 Q2 Q3
  H18 : bisim_up_to refl_t P3 Q3
  H19 : one R A Q1
  H20 : refl_t Q2 P2 Q1 Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H17.
Subgoal 1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A Q3
  H18 : bisim_up_to refl_t P3 Q3
  H19 : one R A Q1
  H20 : refl_t Q3 P2 Q1 Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P3 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H20.
Subgoal 1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P3 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists Q4.
Subgoal 1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   one R A Q4 /\ (exists P2 Q2, refl_t P3 P2 Q4 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 1.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   one R A Q4

Subgoal 1.2 is:
 exists P2 Q2, refl_t P3 P2 Q4 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   exists P2 Q2, refl_t P3 P2 Q4 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists P3.
Subgoal 1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   exists Q2, refl_t P3 P3 Q4 Q2 /\ bisim_up_to refl_t P3 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists Q4.
Subgoal 1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   refl_t P3 P3 Q4 Q4 /\ bisim_up_to refl_t P3 Q4 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 1.2.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   refl_t P3 P3 Q4 Q4

Subgoal 1.2.2 is:
 bisim_up_to refl_t P3 Q4 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 1.2.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one P A P3
  H16 : one Q A P2
  H18 : bisim_up_to refl_t P3 P2
  H19 : one R A Q4
  H21 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_up_to refl_t P3 Q4 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < backchain CH.
Subgoal 2:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 2:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H4 to H15.
Subgoal 2:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H10 to H16.
Subgoal 2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists N1.
Subgoal 2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   oneb R (dn X) N1 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   oneb R (dn X) N1

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists M.
Subgoal 2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N1 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists N1.
Subgoal 2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   forall W, refl_t (M W) (M W) (N1 W) (N1 W) /\
     bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   refl_t (M W) (M W) (N1 W) (N1 W) /\ bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 2.2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   refl_t (M W) (M W) (N1 W) (N1 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H17 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H19 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H20.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H22.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : N1 W = N3 W
  H27 : N W = M1 W
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : N1 W = N3 W
  H27 : N W = M1 W
  H28 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H28.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : N1 W = N3 W
  H27 : N W = M1 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H29 to H21 H25 H24.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : N1 W = N3 W
  H27 : N W = M1 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H29 to H23 H27 H26.
Subgoal 2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (dn X) M
  H16 : oneb Q (dn X) N
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb R (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : N1 W = N3 W
  H27 : N W = M1 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  H31 : bisim_up_to refl_t (N W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < backchain CH.
Subgoal 3:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 3:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H5 to H15.
Subgoal 3:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H11 to H16.
Subgoal 3:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists N1.
Subgoal 3:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   oneb R (up X) N1 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 3.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   oneb R (up X) N1

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists M.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N1 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists N1.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N1 W) (N1 W) /\
     bisim_up_to refl_t (M W) (N1 W) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   refl_t (M n1) (M n1) (N1 n1) (N1 n1) /\
     bisim_up_to refl_t (M n1) (N1 n1) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 3.2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   refl_t (M n1) (M n1) (N1 n1) (N1 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N1 n1) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) M
  H16 : oneb Q (up X) N
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M n1) (N1 n1) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H17.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : oneb Q (up X) (z1\N2 z1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb R (up X) N1
  H20 : refl_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N1 n1) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H20.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : oneb Q (up X) (z1\M1 z1)
  H18 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H19 : oneb R (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < backchain CH.
Subgoal 4:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 4:

  Variables: P, Q, R, A, Q1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H12 to H15.
Subgoal 4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q1
  H16 : one Q A P2
  H17 : refl_t P2 P3 Q1 Q3
  H18 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H6 to H16.
Subgoal 4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q1
  H16 : one Q A P2
  H17 : refl_t P2 P3 Q1 Q3
  H18 : bisim_up_to refl_t P3 Q3
  H19 : one P A P1
  H20 : refl_t P1 P4 P2 Q2
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H17.
Subgoal 4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A P3
  H18 : bisim_up_to refl_t P3 Q3
  H19 : one P A P1
  H20 : refl_t P1 P4 P3 Q2
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q3 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H20.
Subgoal 4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q3 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists P4.
Subgoal 4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   one P A P4 /\ (exists P2 Q2, refl_t P4 P2 Q3 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 4.1:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   one P A P4

Subgoal 4.2 is:
 exists P2 Q2, refl_t P4 P2 Q3 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   exists P2 Q2, refl_t P4 P2 Q3 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists P4.
Subgoal 4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   exists Q2, refl_t P4 P4 Q3 Q2 /\ bisim_up_to refl_t P4 Q2 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists Q3.
Subgoal 4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   refl_t P4 P4 Q3 Q3 /\ bisim_up_to refl_t P4 Q3 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 4.2.1:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   refl_t P4 P4 Q3 Q3

Subgoal 4.2.2 is:
 bisim_up_to refl_t P4 Q3 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 4.2.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : one R A Q3
  H16 : one Q A Q2
  H18 : bisim_up_to refl_t Q2 Q3
  H19 : one P A P4
  H21 : bisim_up_to refl_t P4 Q2
  ============================
   bisim_up_to refl_t P4 Q3 +

Subgoal 5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < backchain CH.
Subgoal 5:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 5:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H13 to H15.
Subgoal 5:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H7 to H16.
Subgoal 5:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists M1.
Subgoal 5:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1 /\ (exists M2 N2, forall W,
     refl_t (M1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 5.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   exists M2 N2, forall W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists M1.
Subgoal 5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   exists N2, forall W, refl_t (M1 W) (M1 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M1 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < exists N.
Subgoal 5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   forall W, refl_t (M1 W) (M1 W) (N W) (N W) /\
     bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   refl_t (M1 W) (M1 W) (N W) (N W) /\ bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < split.
Subgoal 5.2.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   refl_t (M1 W) (M1 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < search.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H17 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H19 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : refl_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H20.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : refl_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H22.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : M W = N1 W
  H27 : M1 W = M3 W
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : M W = N1 W
  H27 : M1 W = M3 W
  H28 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < case H28.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : M W = N1 W
  H27 : M1 W = M3 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H29 to H21 H25 H24.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : M W = N1 W
  H27 : M1 W = M3 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < apply H29 to H23 H27 H26.
Subgoal 5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (dn X) N
  H16 : oneb Q (dn X) M
  H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H18 : oneb P (dn X) M1
  H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to refl_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : M W = N1 W
  H27 : M1 W = M3 W
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  H31 : bisim_up_to refl_t (M1 W) (M W)
  ============================
   bisim_up_to refl_t (M1 W) (N W) +

Subgoal 6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < backchain CH.
Subgoal 6:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_trans < intros.
Subgoal 6:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_trans < apply H14 to H15.
Subgoal 6:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_trans < apply H8 to H16.
Subgoal 6:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_trans < exists M1.
Subgoal 6:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1 /\ (exists M2 N2, nabla W,
     refl_t (M1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_trans < split.
Subgoal 6.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisim_trans < search.
Subgoal 6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisim_trans < exists M1.
Subgoal 6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   exists N2, nabla W, refl_t (M1 W) (M1 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M1 W) (N2 W) +

bisim_trans < exists N.
Subgoal 6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   nabla W, refl_t (M1 W) (M1 W) (N W) (N W) /\
     bisim_up_to refl_t (M1 W) (N W) +

bisim_trans < intros.
Subgoal 6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   refl_t (M1 n1) (M1 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (M1 n1) (N n1) +

bisim_trans < split.
Subgoal 6.2.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   refl_t (M1 n1) (M1 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M1 n1) (N n1) +

bisim_trans < search.
Subgoal 6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) N
  H16 : oneb Q (up X) M
  H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M1 n1) (N n1) +

bisim_trans < case H17.
Subgoal 6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) (z1\N2 z1)
  H16 : oneb Q (up X) (z1\M2 z1)
  H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H19 : oneb P (up X) M1
  H20 : refl_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M1 n1) (N2 n1) +

bisim_trans < case H20.
Subgoal 6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R +
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : oneb R (up X) (z1\N2 z1)
  H16 : oneb Q (up X) (z1\N1 z1)
  H18 : bisim_up_to refl_t (N1 n1) (N2 n1)
  H19 : oneb P (up X) (z1\M3 z1)
  H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M3 n1) (N2 n1) +

bisim_trans < backchain CH.
Proof completed.
Abella < Define bisim_t : proc -> proc -> proc -> proc -> prop by 
bisim_t P1 P2 Q1 Q2 := bisim_up_to refl_t P1 P2 /\ bisim_up_to refl_t Q1 Q2.
Abella < Define is_sound : (proc -> proc -> proc -> proc -> prop) -> prop by 
is_sound Upto := forall P Q, bisim_up_to Upto P Q -> bisim_up_to refl_t P Q.
Abella < Define is_sound_fst : (proc -> proc -> proc -> proc -> prop) -> prop by 
is_sound_fst Upto := forall P Q, (exists R S, bisim_up_to refl_t P R /\ bisim_up_to Upto R S /\
  bisim_up_to refl_t S Q) -> bisim_up_to refl_t P Q.
Abella < Define is_sound_snd : (proc -> proc -> proc -> proc -> prop) -> prop by 
is_sound_snd Upto := forall P Q, bisim_up_to Upto P Q -> (exists R S, bisim_up_to refl_t P R /\
  bisim_up_to Upto R S /\ bisim_up_to refl_t S Q).
Abella < Theorem bisim_sound_fst : 
is_sound_fst bisim_t.


  ============================
   is_sound_fst bisim_t

bisim_sound_fst < unfold.


  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q

bisim_sound_fst < coinduction.


  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q #

bisim_sound_fst < intros.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H1 : exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
         bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisim_sound_fst < case H1.

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisim_sound_fst < unfold.
Subgoal 1:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H2.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H6 to H5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H3.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H15 to H12.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H4.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H24 to H21.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists Q5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 1.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5

Subgoal 1.2 is:
 exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists P1.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists Q5.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 1.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H13.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_t Q3 P2 Q1 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H31.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A P4
  H22 : bisim_t Q3 P2 P4 Q4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H22.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : bisim_up_to refl_t Q3 P2
  H34 : bisim_up_to refl_t P4 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H14 H33.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : bisim_up_to refl_t Q3 P2
  H34 : bisim_up_to refl_t P4 Q4
  H35 : bisim_up_to refl_t P3 P2
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_sym to H34.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : bisim_up_to refl_t Q3 P2
  H34 : bisim_up_to refl_t P4 Q4
  H35 : bisim_up_to refl_t P3 P2
  H36 : bisim_up_to refl_t Q4 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H36 H32.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : bisim_up_to refl_t Q3 P2
  H34 : bisim_up_to refl_t P4 Q4
  H35 : bisim_up_to refl_t P3 P2
  H36 : bisim_up_to refl_t Q4 P4
  H37 : bisim_up_to refl_t Q4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < backchain CH.
Subgoal 2:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H2.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H7 to H5.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H3.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H15 to H12.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H23 to H20.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists N4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists M.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists N4.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H30.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H34.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H40.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H32.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : bisim_up_to refl_t (N W) (M1 W)
  H45 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H42 H44.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : bisim_up_to refl_t (N W) (M1 W)
  H45 : bisim_up_to refl_t (N1 W) (N3 W)
  H46 : bisim_up_to refl_t (M W) (M1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_sym to H45.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : bisim_up_to refl_t (N W) (M1 W)
  H45 : bisim_up_to refl_t (N1 W) (N3 W)
  H46 : bisim_up_to refl_t (M W) (M1 W)
  H47 : bisim_up_to refl_t (N3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H47 H43.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : bisim_up_to refl_t (N W) (M1 W)
  H45 : bisim_up_to refl_t (N1 W) (N3 W)
  H46 : bisim_up_to refl_t (M W) (M1 W)
  H47 : bisim_up_to refl_t (N3 W) (N1 W)
  H48 : bisim_up_to refl_t (N3 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < backchain CH.
Subgoal 3:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H2.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H8 to H5.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H3.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H17 to H12.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H26 to H21.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists N4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 3.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists M.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists N4.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
     bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 3.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H13.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H31.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H22 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H22.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H14 H33.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_sym to H34.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (N3 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H36 H32.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H37 : bisim_up_to refl_t (N3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < backchain CH.
Subgoal 4:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H4.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H9 to H5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H3.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H18 to H12.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H2.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H27 to H21.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists P5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 4.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5

Subgoal 4.2 is:
 exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists P5.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists Q1.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 4.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H13.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_t P1 P4 P3 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H31.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H22 : bisim_t Q4 P4 P3 Q2
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H22.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : bisim_up_to refl_t Q4 P4
  H34 : bisim_up_to refl_t P3 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H32 H33.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : bisim_up_to refl_t Q4 P4
  H34 : bisim_up_to refl_t P3 Q2
  H35 : bisim_up_to refl_t P6 P4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_sym to H34.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : bisim_up_to refl_t Q4 P4
  H34 : bisim_up_to refl_t P3 Q2
  H35 : bisim_up_to refl_t P6 P4
  H36 : bisim_up_to refl_t Q2 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H36 H14.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : bisim_up_to refl_t Q4 P4
  H34 : bisim_up_to refl_t P3 Q2
  H35 : bisim_up_to refl_t P6 P4
  H36 : bisim_up_to refl_t Q2 P3
  H37 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < backchain CH.
Subgoal 5:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H4.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H10 to H5.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H3.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H18 to H12.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H2.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H26 to H20.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists M4.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4 /\ (exists M2 N2, forall W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 5.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists M4.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < exists N.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < split.
Subgoal 5.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < search.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H30.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H34.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H40.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < case H32.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : bisim_up_to refl_t (M1 W) (M3 W)
  H45 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H43 H44.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : bisim_up_to refl_t (M1 W) (M3 W)
  H45 : bisim_up_to refl_t (M W) (N1 W)
  H46 : bisim_up_to refl_t (M4 W) (M3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_sym to H45.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : bisim_up_to refl_t (M1 W) (M3 W)
  H45 : bisim_up_to refl_t (M W) (N1 W)
  H46 : bisim_up_to refl_t (M4 W) (M3 W)
  H47 : bisim_up_to refl_t (N1 W) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < apply bisim_trans to H47 H42.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : bisim_up_to refl_t (M1 W) (M3 W)
  H45 : bisim_up_to refl_t (M W) (N1 W)
  H46 : bisim_up_to refl_t (M4 W) (M3 W)
  H47 : bisim_up_to refl_t (N1 W) (M W)
  H48 : bisim_up_to refl_t (N1 W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < backchain CH.
Subgoal 6:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_sound_fst < intros.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < case H4.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < apply H11 to H5.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < case H3.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < apply H20 to H12.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < case H2.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < apply H29 to H21.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < exists M4.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4 /\ (exists M2 N2, nabla W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_sound_fst < split.
Subgoal 6.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisim_sound_fst < search.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisim_sound_fst < exists M4.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

bisim_sound_fst < exists N.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

bisim_sound_fst < intros.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (M4 n1) (N n1) +

bisim_sound_fst < split.
Subgoal 6.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M4 n1) (N n1) +

bisim_sound_fst < search.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N n1) +

bisim_sound_fst < case H13.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N2 n1) +

bisim_sound_fst < case H31.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H22 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_sound_fst < case H22.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_sound_fst < apply bisim_trans to H32 H33.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_sound_fst < apply bisim_sym to H34.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H36 : bisim_up_to refl_t (N1 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_sound_fst < apply bisim_trans to H36 H14.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H36 : bisim_up_to refl_t (N1 n1) (M2 n1)
  H37 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_sound_fst < backchain CH.
Proof completed.
Abella < Theorem bisim_sound_snd : 
is_sound_snd bisim_t.


  ============================
   is_sound_snd bisim_t

bisim_sound_snd < unfold.


  ============================
   forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
     bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
     bisim_up_to refl_t S Q)

bisim_sound_snd < intros.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
     bisim_up_to refl_t S Q

bisim_sound_snd < apply bisim_refl with P = P.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to refl_t P P
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
     bisim_up_to refl_t S Q

bisim_sound_snd < apply bisim_refl with P = Q.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
     bisim_up_to refl_t S Q

bisim_sound_snd < exists P.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_t P S /\
     bisim_up_to refl_t S Q

bisim_sound_snd < exists Q.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   bisim_up_to refl_t P P /\ bisim_up_to bisim_t P Q /\
     bisim_up_to refl_t Q Q

bisim_sound_snd < search.
Proof completed.
Abella < Theorem bisim_sound : 
is_sound bisim_t.


  ============================
   is_sound bisim_t

bisim_sound < unfold.


  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q

bisim_sound < intros.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t P Q

bisim_sound < apply bisim_sound_snd.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H2 : is_sound_snd bisim_t
  ============================
   bisim_up_to refl_t P Q

bisim_sound < case H2.

  Variables: P, Q
  H1 : bisim_up_to bisim_t P Q
  H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
         bisim_up_to refl_t S Q)
  ============================
   bisim_up_to refl_t P Q

bisim_sound < apply H3 to H1.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_t P Q
  H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_t R S
  H6 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q

bisim_sound < apply bisim_sound_fst.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_t P Q
  H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_t R S
  H6 : bisim_up_to refl_t S Q
  H7 : is_sound_fst bisim_t
  ============================
   bisim_up_to refl_t P Q

bisim_sound < case H7.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_t P Q
  H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_t R S
  H6 : bisim_up_to refl_t S Q
  H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q
  ============================
   bisim_up_to refl_t P Q

bisim_sound < backchain H8.
Proof completed.
Abella < Define transitivity_t : proc -> proc -> proc -> proc -> prop by 
transitivity_t P1 P3 Q1 Q3 := P1 = P3 /\ Q1 = Q3 \/ (exists P2 Q2, bisim_up_to transitivity_t P1 P2 /\
  bisim_up_to transitivity_t P2 P3 /\ bisim_up_to transitivity_t Q1 Q2 /\
  bisim_up_to transitivity_t Q2 Q3).
Abella < Theorem bisimUpToTrans_sym : 
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P.


  ============================
   forall P Q, bisim_up_to transitivity_t P Q ->
     bisim_up_to transitivity_t Q P

bisimUpToTrans_sym < skip.
Proof completed.
Abella < Theorem bisimUpToTrans_trans : 
forall P Q R, bisim_up_to transitivity_t P Q ->
  bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R.


  ============================
   forall P Q R, bisim_up_to transitivity_t P Q ->
     bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimUpToTrans_trans < skip.
Proof completed.
Abella < Define equally_structured_1 : (proc -> proc -> prop) -> prop by 
equally_structured_1 Pred := forall X1 X2 Y, Pred X1 X2 -> X2 = Y -> Pred X1 Y.
Abella < Define equally_structured_2 : (proc -> proc -> prop) -> prop by 
equally_structured_2 Pred := forall X1 X2 Y, Pred X1 X2 -> X1 = Y -> Pred Y X2.
Abella < Theorem equally_structured_1_refl : 
equally_structured_1 (bisim_up_to refl_t).


  ============================
   equally_structured_1 (bisim_up_to refl_t)

equally_structured_1_refl < skip.
Proof completed.
Abella < Theorem equally_structured_2_refl : 
equally_structured_2 (bisim_up_to refl_t).


  ============================
   equally_structured_2 (bisim_up_to refl_t)

equally_structured_2_refl < skip.
Proof completed.
Abella < Theorem transitivity_sound_fst : 
is_sound_fst transitivity_t.


  ============================
   is_sound_fst transitivity_t

transitivity_sound_fst < unfold.


  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q

transitivity_sound_fst < coinduction.


  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q #

transitivity_sound_fst < intros.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H1 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

transitivity_sound_fst < case H1.

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

transitivity_sound_fst < unfold.
Subgoal 1:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H2.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H6 to H5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H3.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H15 to H12.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H4.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H24 to H21.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists Q5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 1.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5

Subgoal 1.2 is:
 exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists P1.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists Q5.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 1.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q2 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H13.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : transitivity_t Q3 P2 Q1 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H31.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H22 : transitivity_t Q3 P2 P4 Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H22.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : Q3 = P2 /\ P4 = Q4 \/ (exists P1 Q2,
          bisim_up_to transitivity_t Q3 P1 /\
          bisim_up_to transitivity_t P1 P2 /\
          bisim_up_to transitivity_t P4 Q2 /\
          bisim_up_to transitivity_t Q2 Q4)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H33.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A P2
  H14 : bisim_up_to refl_t P3 P2
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A Q4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t Q4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  H39 : bisim_up_to transitivity_t Q4 Q7
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  H39 : bisim_up_to transitivity_t Q4 Q7
  H40 : bisim_up_to transitivity_t P2 Q7
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  H39 : bisim_up_to transitivity_t Q4 Q7
  H40 : bisim_up_to transitivity_t P2 Q7
  H41 : bisim_up_to transitivity_t Q7 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  H39 : bisim_up_to transitivity_t Q4 Q7
  H40 : bisim_up_to transitivity_t P2 Q7
  H41 : bisim_up_to transitivity_t Q7 P4
  H42 : bisim_up_to transitivity_t P2 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to transitivity_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_up_to transitivity_t Q3 P5
  H35 : bisim_up_to transitivity_t P5 P2
  H36 : bisim_up_to transitivity_t P4 Q7
  H37 : bisim_up_to transitivity_t Q7 Q4
  H38 : bisim_up_to transitivity_t Q3 P2
  H39 : bisim_up_to transitivity_t Q4 Q7
  H40 : bisim_up_to transitivity_t P2 Q7
  H41 : bisim_up_to transitivity_t Q7 P4
  H42 : bisim_up_to transitivity_t P2 P4
  H43 : bisim_up_to transitivity_t Q3 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 2:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H2.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H7 to H5.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H3.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H15 to H12.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H23 to H20.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists N4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists M.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists N4.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H30.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H34.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H40.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H32.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : N W = M1 W /\ N1 W = N3 W \/ (exists P2 Q2,
          bisim_up_to transitivity_t (N W) P2 /\
          bisim_up_to transitivity_t P2 (M1 W) /\
          bisim_up_to transitivity_t (N1 W) Q2 /\
          bisim_up_to transitivity_t Q2 (N3 W))
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H44.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equally_structured_1_refl.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H47 : equally_structured_1 (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H47.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H48 to H42 H45.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  H49 : bisim_up_to refl_t (M W) (M1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equally_structured_2_refl.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  H49 : bisim_up_to refl_t (M W) (M1 W)
  H50 : equally_structured_2 (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H50.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  H49 : bisim_up_to refl_t (M W) (M1 W)
  H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H51 to H43 H46.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : N W = M1 W
  H46 : N1 W = N3 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  H49 : bisim_up_to refl_t (M W) (M1 W)
  H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  H52 : bisim_up_to refl_t (N3 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H45 H46.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H48.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  H50 : bisim_up_to transitivity_t (N3 W) Q2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H33 H50.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  H50 : bisim_up_to transitivity_t (N3 W) Q2
  H51 : bisim_up_to transitivity_t (M1 W) Q2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H47.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  H50 : bisim_up_to transitivity_t (N3 W) Q2
  H51 : bisim_up_to transitivity_t (M1 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H51 H52.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  H50 : bisim_up_to transitivity_t (N3 W) Q2
  H51 : bisim_up_to transitivity_t (M1 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (N1 W)
  H53 : bisim_up_to transitivity_t (M1 W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H49 H53.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to transitivity_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_up_to transitivity_t (N W) P2
  H46 : bisim_up_to transitivity_t P2 (M1 W)
  H47 : bisim_up_to transitivity_t (N1 W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N3 W)
  H49 : bisim_up_to transitivity_t (N W) (M1 W)
  H50 : bisim_up_to transitivity_t (N3 W) Q2
  H51 : bisim_up_to transitivity_t (M1 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (N1 W)
  H53 : bisim_up_to transitivity_t (M1 W) (N1 W)
  H54 : bisim_up_to transitivity_t (N W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 3:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H2.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H8 to H5.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H3.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H17 to H12.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H26 to H21.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists N4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 3.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists M.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists N4.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
     bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 3.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H13.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : transitivity_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H31.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H22 : transitivity_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H22.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : N2 n1 = M1 n1 /\ M3 n1 = N3 n1 \/ (exists P2 Q2,
          bisim_up_to transitivity_t (N2 n1) P2 /\
          bisim_up_to transitivity_t P2 (M1 n1) /\
          bisim_up_to transitivity_t (M3 n1) Q2 /\
          bisim_up_to transitivity_t Q2 (N3 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H33.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\M1 z1)
  H14 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (N3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
  H42 : bisim_up_to transitivity_t (M1 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
  H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
  H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
  H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
  H42 : bisim_up_to transitivity_t (M1 n1) (M3 n1)
  H43 : bisim_up_to transitivity_t (N2 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 4:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H4.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H9 to H5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H3.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H18 to H12.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H2.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H27 to H21.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists P5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 4.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5

Subgoal 4.2 is:
 exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists P5.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists Q1.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 4.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P2 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H13.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : transitivity_t P1 P4 P3 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H31.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H22 : transitivity_t Q4 P4 P3 Q2
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H22.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : Q4 = P4 /\ P3 = Q2 \/ (exists P2 Q1,
          bisim_up_to transitivity_t Q4 P2 /\
          bisim_up_to transitivity_t P2 P4 /\
          bisim_up_to transitivity_t P3 Q1 /\
          bisim_up_to transitivity_t Q1 Q2)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H33.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A Q2
  H14 : bisim_up_to refl_t Q2 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A P4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 P4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  H39 : bisim_up_to transitivity_t Q2 Q5
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  H39 : bisim_up_to transitivity_t Q2 Q5
  H40 : bisim_up_to transitivity_t P4 Q5
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  H39 : bisim_up_to transitivity_t Q2 Q5
  H40 : bisim_up_to transitivity_t P4 Q5
  H41 : bisim_up_to transitivity_t Q5 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  H39 : bisim_up_to transitivity_t Q2 Q5
  H40 : bisim_up_to transitivity_t P4 Q5
  H41 : bisim_up_to transitivity_t Q5 P3
  H42 : bisim_up_to transitivity_t P4 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to transitivity_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_up_to transitivity_t Q4 P7
  H35 : bisim_up_to transitivity_t P7 P4
  H36 : bisim_up_to transitivity_t P3 Q5
  H37 : bisim_up_to transitivity_t Q5 Q2
  H38 : bisim_up_to transitivity_t Q4 P4
  H39 : bisim_up_to transitivity_t Q2 Q5
  H40 : bisim_up_to transitivity_t P4 Q5
  H41 : bisim_up_to transitivity_t Q5 P3
  H42 : bisim_up_to transitivity_t P4 P3
  H43 : bisim_up_to transitivity_t Q4 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 5:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H4.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H10 to H5.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H3.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H18 to H12.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H2.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H26 to H20.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists M4.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4 /\ (exists M2 N2, forall W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 5.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists M4.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < exists N.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < split.
Subgoal 5.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < search.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H30.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H34.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H40.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H32.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : M1 W = M3 W /\ M W = N1 W \/ (exists P2 Q2,
          bisim_up_to transitivity_t (M1 W) P2 /\
          bisim_up_to transitivity_t P2 (M3 W) /\
          bisim_up_to transitivity_t (M W) Q2 /\
          bisim_up_to transitivity_t Q2 (N1 W))
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H44.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equally_structured_2_refl.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H47 : equally_structured_2 (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H47.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H48 to H42 H46.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  H49 : bisim_up_to refl_t (N1 W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply equally_structured_1_refl.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  H49 : bisim_up_to refl_t (N1 W) (N W)
  H50 : equally_structured_1 (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < case H50.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  H49 : bisim_up_to refl_t (N1 W) (N W)
  H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply H51 to H43 H45.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : M1 W = M3 W
  H46 : M W = N1 W
  H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
          bisim_up_to refl_t Y X2
  H49 : bisim_up_to refl_t (N1 W) (N W)
  H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
          bisim_up_to refl_t X1 Y
  H52 : bisim_up_to refl_t (M4 W) (M3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H45 H46.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H48.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  H50 : bisim_up_to transitivity_t (N1 W) Q2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H33 H50.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  H50 : bisim_up_to transitivity_t (N1 W) Q2
  H51 : bisim_up_to transitivity_t (M3 W) Q2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_sym to H47.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  H50 : bisim_up_to transitivity_t (N1 W) Q2
  H51 : bisim_up_to transitivity_t (M3 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H51 H52.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  H50 : bisim_up_to transitivity_t (N1 W) Q2
  H51 : bisim_up_to transitivity_t (M3 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (M W)
  H53 : bisim_up_to transitivity_t (M3 W) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < apply bisimUpToTrans_trans to H49 H53.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to transitivity_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_up_to transitivity_t (M1 W) P2
  H46 : bisim_up_to transitivity_t P2 (M3 W)
  H47 : bisim_up_to transitivity_t (M W) Q2
  H48 : bisim_up_to transitivity_t Q2 (N1 W)
  H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
  H50 : bisim_up_to transitivity_t (N1 W) Q2
  H51 : bisim_up_to transitivity_t (M3 W) Q2
  H52 : bisim_up_to transitivity_t Q2 (M W)
  H53 : bisim_up_to transitivity_t (M3 W) (M W)
  H54 : bisim_up_to transitivity_t (M1 W) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < backchain CH.
Subgoal 6:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

transitivity_sound_fst < intros.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < case H4.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < apply H11 to H5.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to transitivity_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < case H3.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < apply H20 to H12.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < case H2.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < apply H29 to H21.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < exists M4.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4 /\ (exists M2 N2, nabla W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

transitivity_sound_fst < split.
Subgoal 6.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

transitivity_sound_fst < search.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

transitivity_sound_fst < exists M4.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

transitivity_sound_fst < exists N.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

transitivity_sound_fst < intros.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (M4 n1) (N n1) +

transitivity_sound_fst < split.
Subgoal 6.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M4 n1) (N n1) +

transitivity_sound_fst < search.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N n1) +

transitivity_sound_fst < case H13.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : transitivity_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N2 n1) +

transitivity_sound_fst < case H31.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H22 : transitivity_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < case H22.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : N3 n1 = M3 n1 /\ M2 n1 = N1 n1 \/ (exists P2 Q2,
          bisim_up_to transitivity_t (N3 n1) P2 /\
          bisim_up_to transitivity_t P2 (M3 n1) /\
          bisim_up_to transitivity_t (M2 n1) Q2 /\
          bisim_up_to transitivity_t Q2 (N1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < case H33.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\N1 z1)
  H14 : bisim_up_to refl_t (N1 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\M3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < backchain CH.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
  H42 : bisim_up_to transitivity_t (M3 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to transitivity_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
  H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
  H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
  H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
  H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
  H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
  H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
  H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
  H42 : bisim_up_to transitivity_t (M3 n1) (M2 n1)
  H43 : bisim_up_to transitivity_t (N3 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

transitivity_sound_fst < backchain CH.
Proof completed.
Abella < Theorem transitivity_sound_snd : 
is_sound_snd transitivity_t.


  ============================
   is_sound_snd transitivity_t

transitivity_sound_snd < unfold.


  ============================
   forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
     bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
     bisim_up_to refl_t S Q)

transitivity_sound_snd < intros.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
     bisim_up_to refl_t S Q

transitivity_sound_snd < apply bisim_refl with P = P.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H2 : bisim_up_to refl_t P P
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
     bisim_up_to refl_t S Q

transitivity_sound_snd < apply bisim_refl with P = Q.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
     bisim_up_to refl_t S Q

transitivity_sound_snd < exists P.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists S, bisim_up_to refl_t P P /\ bisim_up_to transitivity_t P S /\
     bisim_up_to refl_t S Q

transitivity_sound_snd < exists Q.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   bisim_up_to refl_t P P /\ bisim_up_to transitivity_t P Q /\
     bisim_up_to refl_t Q Q

transitivity_sound_snd < search.
Proof completed.
Abella < Theorem transitivity_sound : 
is_sound transitivity_t.


  ============================
   is_sound transitivity_t

transitivity_sound < unfold.


  ============================
   forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q

transitivity_sound < intros.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < apply transitivity_sound_snd.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H2 : is_sound_snd transitivity_t
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < case H2.

  Variables: P, Q
  H1 : bisim_up_to transitivity_t P Q
  H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
         bisim_up_to refl_t S Q)
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < apply H3 to H1.

  Variables: P, Q, R, S
  H1 : bisim_up_to transitivity_t P Q
  H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to transitivity_t R S
  H6 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < apply transitivity_sound_fst.

  Variables: P, Q, R, S
  H1 : bisim_up_to transitivity_t P Q
  H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to transitivity_t R S
  H6 : bisim_up_to refl_t S Q
  H7 : is_sound_fst transitivity_t
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < case H7.

  Variables: P, Q, R, S
  H1 : bisim_up_to transitivity_t P Q
  H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to transitivity_t R S
  H6 : bisim_up_to refl_t S Q
  H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q
  ============================
   bisim_up_to refl_t P Q

transitivity_sound < backchain H8.
Proof completed.
Abella < Define context_t : proc -> proc -> proc -> proc -> prop by 
context_t P1 P2 Q1 Q2 := P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R).
Abella < Theorem bisimUpToContext_cong : 
forall P Q R, bisim_up_to context_t P Q ->
  bisim_up_to context_t (par P R) (par Q R).


  ============================
   forall P Q R, bisim_up_to context_t P Q ->
     bisim_up_to context_t (par P R) (par Q R)

bisimUpToContext_cong < skip.
Proof completed.
Abella < Theorem equality_for_structured_cont : 
equally_structured (bisim_up_to context_t).


  ============================
   equally_structured (bisim_up_to context_t)

equality_for_structured_cont < unfold.


  ============================
   forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
     bisim_up_to context_t Y1 Y2

equality_for_structured_cont < intros.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to context_t X1 X2
  H2 : Y1 = X1
  H3 : Y2 = X2
  ============================
   bisim_up_to context_t Y1 Y2

equality_for_structured_cont < case H2.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to context_t X1 X2
  H3 : Y2 = X2
  ============================
   bisim_up_to context_t X1 Y2

equality_for_structured_cont < case H3.

  Variables: X1, X2, Y1, Y2
  H1 : bisim_up_to context_t X1 X2
  ============================
   bisim_up_to context_t X1 X2

equality_for_structured_cont < search.
Proof completed.
Abella < Theorem context_sound : 
is_sound context_t.


  ============================
   is_sound context_t

context_sound < unfold.


  ============================
   forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q

context_sound < coinduction.


  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  ============================
   forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q #

context_sound < intros.

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H1 : bisim_up_to context_t P Q
  ============================
   bisim_up_to refl_t P Q #

context_sound < case H1.

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t P Q #

context_sound < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H2 to H8.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
     bisim_up_to refl_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists P1.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists Q2.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H10 : context_t P1 P3 Q2 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H10.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P1
  H9 : one Q A Q2
  H11 : bisim_up_to context_t P3 Q3
  H12 : P1 = P3 /\ Q2 = Q3 \/ (exists R, P1 = par P3 R /\ Q2 = par Q3 R)
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H12.
Subgoal 1.2.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A P3
  H9 : one Q A Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P3 Q3 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 1.2.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A (par P3 R)
  H9 : one Q A (par Q3 R)
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply bisimUpToContext_cong to H11 with R = R.
Subgoal 1.2.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one P A (par P3 R)
  H9 : one Q A (par Q3 R)
  H11 : bisim_up_to context_t P3 Q3
  H13 : bisim_up_to context_t (par P3 R) (par Q3 R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H3 to H8.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists M.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists N.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H10 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H11 : context_t (M W) (M2 W) (N W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H11.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H13 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
          N W = par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H13.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply equality_for_structured_cont.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H16 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H16.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H17 to H12 H14 H15.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H18 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply bisimUpToContext_cong to H12 with R = R.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply equality_for_structured_cont.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H17 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H17.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H18 to H16 H14 H15.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (dn X) M
  H9 : oneb Q (dn X) N
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H19 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H4 to H8.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists M.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists N.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H10.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) M
  H9 : oneb Q (up X) N
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  H12 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
          N n1 = par (N2 n1) R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H12.
Subgoal 3.2.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) (z1\M2 z1)
  H9 : oneb Q (up X) (z1\N2 z1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N2 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 3.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H9 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply bisimUpToContext_cong to H11 with R = R n1.
Subgoal 3.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H9 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  H13 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H5 to H8.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
     bisim_up_to refl_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists P2.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists Q1.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H10 : context_t P2 P3 Q1 Q3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H10.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q1
  H9 : one P A P2
  H11 : bisim_up_to context_t P3 Q3
  H12 : P2 = P3 /\ Q1 = Q3 \/ (exists R, P2 = par P3 R /\ Q1 = par Q3 R)
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H12.
Subgoal 4.2.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A Q3
  H9 : one P A P3
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P3 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 4.2.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A (par Q3 R)
  H9 : one P A (par P3 R)
  H11 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply bisimUpToContext_cong to H11 with R = R.
Subgoal 4.2.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : one Q A (par Q3 R)
  H9 : one P A (par P3 R)
  H11 : bisim_up_to context_t P3 Q3
  H13 : bisim_up_to context_t (par P3 R) (par Q3 R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H6 to H8.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists M.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < exists N.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < search.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H10 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H11 : context_t (M W) (M2 W) (N W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H11.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H13 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
          N W = par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H13.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply equality_for_structured_cont.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H16 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H16.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H17 to H12 H14 H15.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = M2 W
  H15 : N W = N2 W
  H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H18 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply bisimUpToContext_cong to H12 with R = R.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply equality_for_structured_cont.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H17 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < case H17.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < apply H18 to H16 H14 H15.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (dn X) N
  H9 : oneb P (dn X) M
  H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : M W = par (M2 W) R
  H15 : N W = par (N2 W) R
  H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H19 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

context_sound < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

context_sound < apply H7 to H8.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

context_sound < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

context_sound < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

context_sound < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

context_sound < exists M.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

context_sound < exists N.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

context_sound < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

context_sound < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

context_sound < search.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

context_sound < case H10.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) N
  H9 : oneb P (up X) M
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  H12 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
          N n1 = par (N2 n1) R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

context_sound < case H12.
Subgoal 6.2.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) (z1\N2 z1)
  H9 : oneb P (up X) (z1\M2 z1)
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

context_sound < backchain CH.
Subgoal 6.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H9 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

context_sound < apply bisimUpToContext_cong to H11 with R = R n1.
Subgoal 6.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, R
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H8 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H9 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H11 : bisim_up_to context_t (M2 n1) (N2 n1)
  H13 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

context_sound < backchain CH.
Proof completed.
Abella < Define bisim_context_t : proc -> proc -> proc -> proc -> prop by 
bisim_context_t P1 P3 Q1 Q3 := bisim_t P1 P3 Q1 Q3 \/ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ (exists R,
  P2 = par P3 R /\ Q2 = par Q3 R)).
Abella < Theorem bisimUpToBisimAndContext_cong : 
forall P Q R, bisim_up_to bisim_context_t P Q ->
  bisim_up_to bisim_context_t (par P R) (par Q R).


  ============================
   forall P Q R, bisim_up_to bisim_context_t P Q ->
     bisim_up_to bisim_context_t (par P R) (par Q R)

bisimUpToBisimAndContext_cong < skip.
Proof completed.
Abella < Theorem bisim_context_sound_fst : 
is_sound_fst bisim_context_t.


  ============================
   is_sound_fst bisim_context_t

bisim_context_sound_fst < unfold.


  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q

bisim_context_sound_fst < coinduction.


  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q #

bisim_context_sound_fst < intros.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H1 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisim_context_sound_fst < case H1.

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisim_context_sound_fst < unfold.
Subgoal 1:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H2.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H6 to H5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H3.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H15 to H12.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H4.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H24 to H21.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists Q5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 1.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5

Subgoal 1.2 is:
 exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists P1.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists Q5.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 1.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P1
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q2
  H13 : refl_t P1 P3 Q2 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q2 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H13.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A Q1
  H22 : bisim_context_t Q3 P2 Q1 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q5
  H31 : refl_t Q1 P4 Q5 Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H31.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H22 : bisim_context_t Q3 P2 P4 Q4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H22.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H33 : bisim_t Q3 P2 P4 Q4 \/ (exists P1 Q2, bisim_t Q3 P1 P4 Q2 /\
          (exists R, P1 = par P2 R /\ Q2 = par Q4 R))
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H33.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_t Q3 P2 P4 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 P2
  H36 : bisim_up_to refl_t P4 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 P2
  H36 : bisim_up_to refl_t P4 Q4
  H37 : bisim_up_to refl_t P3 P2
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 P2
  H36 : bisim_up_to refl_t P4 Q4
  H37 : bisim_up_to refl_t P3 P2
  H38 : bisim_up_to refl_t Q4 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 P2
  H36 : bisim_up_to refl_t P4 Q4
  H37 : bisim_up_to refl_t P3 P2
  H38 : bisim_up_to refl_t Q4 P4
  H39 : bisim_up_to refl_t Q4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H34 : bisim_t Q3 (par P2 R1) P4 (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 (par P2 R1)
  H36 : bisim_up_to refl_t P4 (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 (par P2 R1)
  H36 : bisim_up_to refl_t P4 (par Q4 R1)
  H37 : bisim_up_to refl_t P3 (par P2 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 (par P2 R1)
  H36 : bisim_up_to refl_t P4 (par Q4 R1)
  H37 : bisim_up_to refl_t P3 (par P2 R1)
  H38 : bisim_up_to refl_t (par Q4 R1) P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 (par P2 R1)
  H36 : bisim_up_to refl_t P4 (par Q4 R1)
  H37 : bisim_up_to refl_t P3 (par P2 R1)
  H38 : bisim_up_to refl_t (par Q4 R1) P4
  H39 : bisim_up_to refl_t (par Q4 R1) Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one P A P3
  H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one R A Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one S A P4
  H23 : bisim_up_to bisim_context_t P2 Q4
  H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one Q A Q6
  H32 : bisim_up_to refl_t P4 Q6
  H35 : bisim_up_to refl_t Q3 (par P2 R1)
  H36 : bisim_up_to refl_t P4 (par Q4 R1)
  H37 : bisim_up_to refl_t P3 (par P2 R1)
  H38 : bisim_up_to refl_t (par Q4 R1) P4
  H39 : bisim_up_to refl_t (par Q4 R1) Q6
  H40 : bisim_up_to bisim_context_t (par P2 R1) (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 2:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H2.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H7 to H5.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H3.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H15 to H12.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H23 to H20.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists N4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists M.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists N4.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H30.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H40.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H32.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H44 : bisim_t (N W) (M1 W) (N1 W) (N3 W) \/ (exists P2 Q2,
          bisim_t (N W) P2 (N1 W) Q2 /\ (exists R, P2 = par (M1 W) R /\
          Q2 = par (N3 W) R))
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H44.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H45.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (M1 W)
  H47 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H42 H46.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (M1 W)
  H47 : bisim_up_to refl_t (N1 W) (N3 W)
  H48 : bisim_up_to refl_t (M W) (M1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (M1 W)
  H47 : bisim_up_to refl_t (N1 W) (N3 W)
  H48 : bisim_up_to refl_t (M W) (M1 W)
  H49 : bisim_up_to refl_t (N3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H49 H43.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (M1 W)
  H47 : bisim_up_to refl_t (N1 W) (N3 W)
  H48 : bisim_up_to refl_t (M W) (M1 W)
  H49 : bisim_up_to refl_t (N3 W) (N1 W)
  H50 : bisim_up_to refl_t (N3 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H45 : bisim_t (N W) (par (M1 W) R1) (N1 W) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H45.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H42 H46.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H49 H43.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  H50 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H33 with R = R1.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (dn X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (dn X) N
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb S (dn X) N1
  H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb Q (dn X) N4
  H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M3 W) (N5 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : N4 W = N5 W
  H39 : N1 W = M3 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (N1 W) (N4 W)
  H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  H50 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
  H51 : bisim_up_to bisim_context_t (par (M1 W) R1) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 3:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H2.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H8 to H5.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H3.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H17 to H12.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H4 : bisim_up_to refl_t S Q
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H26 to H21.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists N4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 3.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists M.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists N4.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
     bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 3.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) M
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) N
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H13.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) N1
  H22 : bisim_context_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) N4
  H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H31.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H22 : bisim_context_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H22.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H33 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1) \/ (exists P2 Q2,
          bisim_t (N2 n1) P2 (M3 n1) Q2 /\ (exists R, P2 = par (M1 n1) R /\
          Q2 = par (N3 n1) R))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H33.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H38 : bisim_up_to refl_t (N3 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H38 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H39 : bisim_up_to refl_t (N3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H34 : bisim_t (N2 n1) (par (M1 n1) (R1 n1)) (M3 n1) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  H39 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1 n1.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb P (up X) (z1\M2 z1)
  H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb R (up X) (z1\N2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb S (up X) (z1\M3 z1)
  H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb Q (up X) (z1\N5 z1)
  H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  H39 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
  H40 : bisim_up_to bisim_context_t (par (M1 n1) (R1 n1)) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 4:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H4.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H9 to H5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H3.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H18 to H12.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H2.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H27 to H21.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists P5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 4.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5

Subgoal 4.2 is:
 exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists P5.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists Q1.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 4.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q1
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P2
  H13 : refl_t P2 P3 Q1 Q3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P2 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H13.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A P1
  H22 : bisim_context_t P1 P4 P3 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P5
  H31 : refl_t P5 P6 P1 Q4
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H31.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H22 : bisim_context_t Q4 P4 P3 Q2
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H22.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H33 : bisim_t Q4 P4 P3 Q2 \/ (exists P2 Q1, bisim_t Q4 P2 P3 Q1 /\
          (exists R, P2 = par P4 R /\ Q1 = par Q2 R))
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H33.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_t Q4 P4 P3 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 P4
  H36 : bisim_up_to refl_t P3 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 P4
  H36 : bisim_up_to refl_t P3 Q2
  H37 : bisim_up_to refl_t P6 P4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 P4
  H36 : bisim_up_to refl_t P3 Q2
  H37 : bisim_up_to refl_t P6 P4
  H38 : bisim_up_to refl_t Q2 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 P4
  H36 : bisim_up_to refl_t P3 Q2
  H37 : bisim_up_to refl_t P6 P4
  H38 : bisim_up_to refl_t Q2 P3
  H39 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H34 : bisim_t Q4 (par P4 R1) P3 (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 (par P4 R1)
  H36 : bisim_up_to refl_t P3 (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 (par P4 R1)
  H36 : bisim_up_to refl_t P3 (par Q2 R1)
  H37 : bisim_up_to refl_t P6 (par P4 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 (par P4 R1)
  H36 : bisim_up_to refl_t P3 (par Q2 R1)
  H37 : bisim_up_to refl_t P6 (par P4 R1)
  H38 : bisim_up_to refl_t (par Q2 R1) P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 (par P4 R1)
  H36 : bisim_up_to refl_t P3 (par Q2 R1)
  H37 : bisim_up_to refl_t P6 (par P4 R1)
  H38 : bisim_up_to refl_t (par Q2 R1) P3
  H39 : bisim_up_to refl_t (par Q2 R1) Q3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : one Q A Q3
  H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : one S A P3
  H14 : bisim_up_to refl_t P3 Q3
  H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : one R A Q4
  H23 : bisim_up_to bisim_context_t P4 Q2
  H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : one P A P6
  H32 : bisim_up_to refl_t P6 Q4
  H35 : bisim_up_to refl_t Q4 (par P4 R1)
  H36 : bisim_up_to refl_t P3 (par Q2 R1)
  H37 : bisim_up_to refl_t P6 (par P4 R1)
  H38 : bisim_up_to refl_t (par Q2 R1) P3
  H39 : bisim_up_to refl_t (par Q2 R1) Q3
  H40 : bisim_up_to bisim_context_t (par P4 R1) (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 5:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H4.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H10 to H5.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H3.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H18 to H12.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H2.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H26 to H20.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists M4.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4 /\ (exists M2 N2, forall W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 5.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists M4.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < exists N.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < split.
Subgoal 5.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < search.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H30 : refl_t (M W) (M2 W) (N W) (N2 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H30.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H34.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H40 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H40.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H32.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H44 : bisim_t (M1 W) (M3 W) (M W) (N1 W) \/ (exists P2 Q2,
          bisim_t (M1 W) P2 (M W) Q2 /\ (exists R, P2 = par (M3 W) R /\
          Q2 = par (N1 W) R))
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H44.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H45.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (M3 W)
  H47 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H43 H46.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (M3 W)
  H47 : bisim_up_to refl_t (M W) (N1 W)
  H48 : bisim_up_to refl_t (M4 W) (M3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (M3 W)
  H47 : bisim_up_to refl_t (M W) (N1 W)
  H48 : bisim_up_to refl_t (M4 W) (M3 W)
  H49 : bisim_up_to refl_t (N1 W) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H49 H42.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (M3 W)
  H47 : bisim_up_to refl_t (M W) (N1 W)
  H48 : bisim_up_to refl_t (M4 W) (M3 W)
  H49 : bisim_up_to refl_t (N1 W) (M W)
  H50 : bisim_up_to refl_t (N1 W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H45 : bisim_t (M1 W) (par (M3 W) R1) (M W) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < case H45.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H43 H46.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisim_trans to H49 H42.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  H50 : bisim_up_to refl_t (par (N1 W) R1) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H33 with R = R1.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (dn X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (dn X) M
  H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : oneb R (dn X) M1
  H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H28 : oneb P (dn X) M4
  H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H31 : bisim_up_to refl_t (M2 W) (N2 W)
  H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H35 : bisim_up_to refl_t (M5 W) (N3 W)
  H36 : N W = N2 W
  H37 : M W = M2 W
  H38 : M1 W = N3 W
  H39 : M4 W = M5 W
  H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H42 : bisim_up_to refl_t (M W) (N W)
  H43 : bisim_up_to refl_t (M4 W) (M1 W)
  H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  H50 : bisim_up_to refl_t (par (N1 W) R1) (N W)
  H51 : bisim_up_to bisim_context_t (par (M3 W) R1) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < backchain CH.
Subgoal 6:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisim_context_sound_fst < intros.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H4 : bisim_up_to refl_t S Q
  H5 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < case H4.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < apply H11 to H5.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H3 : bisim_up_to bisim_context_t R S
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < case H3.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < apply H20 to H12.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H2 : bisim_up_to refl_t P R
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < case H2.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < apply H29 to H21.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < exists M4.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4 /\ (exists M2 N2, nabla W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisim_context_sound_fst < split.
Subgoal 6.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisim_context_sound_fst < search.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisim_context_sound_fst < exists M4.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

bisim_context_sound_fst < exists N.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

bisim_context_sound_fst < intros.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (M4 n1) (N n1) +

bisim_context_sound_fst < split.
Subgoal 6.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M4 n1) (N n1) +

bisim_context_sound_fst < search.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) N
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) M
  H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N n1) +

bisim_context_sound_fst < case H13.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) M1
  H22 : bisim_context_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) M4
  H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N2 n1) +

bisim_context_sound_fst < case H31.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H22 : bisim_context_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < case H22.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H33 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1) \/ (exists P2 Q2,
          bisim_t (N3 n1) P2 (M2 n1) Q2 /\ (exists R, P2 = par (M3 n1) R /\
          Q2 = par (N1 n1) R))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < case H33.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < case H34.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H38 : bisim_up_to refl_t (N1 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H38 : bisim_up_to refl_t (N1 n1) (M2 n1)
  H39 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < backchain CH.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H34 : bisim_t (N3 n1) (par (M3 n1) (R1 n1)) (M2 n1) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < case H34.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  H39 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1 n1.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : oneb Q (up X) (z1\N2 z1)
  H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H12 : oneb S (up X) (z1\M2 z1)
  H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H21 : oneb R (up X) (z1\N3 z1)
  H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H30 : oneb P (up X) (z1\M5 z1)
  H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  H39 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
  H40 : bisim_up_to bisim_context_t (par (M3 n1) (R1 n1)) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisim_context_sound_fst < backchain CH.
Proof completed.
Abella < Theorem bisim_context_sound_snd : 
is_sound_snd bisim_context_t.


  ============================
   is_sound_snd bisim_context_t

bisim_context_sound_snd < unfold.


  ============================
   forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
     bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q)

bisim_context_sound_snd < intros.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisim_context_sound_snd < apply bisim_refl with P = P.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H2 : bisim_up_to refl_t P P
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisim_context_sound_snd < apply bisim_refl with P = Q.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisim_context_sound_snd < exists P.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P S /\
     bisim_up_to refl_t S Q

bisim_context_sound_snd < exists Q.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H2 : bisim_up_to refl_t P P
  H3 : bisim_up_to refl_t Q Q
  ============================
   bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P Q /\
     bisim_up_to refl_t Q Q

bisim_context_sound_snd < search.
Proof completed.
Abella < Theorem bisim_context_sound : 
is_sound bisim_context_t.


  ============================
   is_sound bisim_context_t

bisim_context_sound < unfold.


  ============================
   forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q

bisim_context_sound < intros.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < apply bisim_context_sound_snd.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H2 : is_sound_snd bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < case H2.

  Variables: P, Q
  H1 : bisim_up_to bisim_context_t P Q
  H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < apply H3 to H1.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_context_t P Q
  H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_context_t R S
  H6 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < apply bisim_context_sound_fst.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_context_t P Q
  H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_context_t R S
  H6 : bisim_up_to refl_t S Q
  H7 : is_sound_fst bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < case H7.

  Variables: P, Q, R, S
  H1 : bisim_up_to bisim_context_t P Q
  H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H4 : bisim_up_to refl_t P R
  H5 : bisim_up_to bisim_context_t R S
  H6 : bisim_up_to refl_t S Q
  H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q
  ============================
   bisim_up_to refl_t P Q

bisim_context_sound < backchain H8.
Proof completed.
Abella < Define upTo1ImpliesUpTo2 : (proc -> proc -> proc -> proc -> prop) -> (proc -> proc -> proc -> proc -> prop) -> prop by 
upTo1ImpliesUpTo2 Upto1 Upto2 := forall P1 P2 Q1 Q2, Upto1 P1 P2 Q1 Q2 -> Upto2 P1 P2 Q1 Q2.
Abella < Define bisim1ImpliesBisim2 : (proc -> proc -> proc -> proc -> prop) -> (proc -> proc -> proc -> proc -> prop) -> prop by 
bisim1ImpliesBisim2 Upto1 Upto2 := forall P Q, upTo1ImpliesUpTo2 Upto1 Upto2 -> bisim_up_to Upto1 P Q ->
  bisim_up_to Upto2 P Q.
Abella < Theorem bisim_implies_bisimB : 
bisim1ImpliesBisim2 refl_t bisim_t.


  ============================
   bisim1ImpliesBisim2 refl_t bisim_t

bisim_implies_bisimB < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t -> bisim_up_to refl_t P Q ->
     bisim_up_to bisim_t P Q

bisim_implies_bisimB < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t -> bisim_up_to refl_t P Q ->
     bisim_up_to bisim_t P Q #

bisim_implies_bisimB < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_t P Q #

bisim_implies_bisimB < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\ bisim_up_to bisim_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\ bisim_up_to bisim_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, bisim_t P1 P3 Q2 Q1 /\ bisim_up_to bisim_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to bisim_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\ bisim_up_to bisim_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\ bisim_up_to bisim_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q2, bisim_t P2 P3 Q1 Q2 /\ bisim_up_to bisim_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to bisim_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

bisim_implies_bisimB < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisim_implies_bisimB < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisim_implies_bisimB < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisim_implies_bisimB < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisim_implies_bisimB < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

bisim_implies_bisimB < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

bisim_implies_bisimB < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

bisim_implies_bisimB < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

bisim_implies_bisimB < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_t (M2 n1) (N2 n1) +

bisim_implies_bisimB < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N2 n1) +

bisim_implies_bisimB < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
  ============================
   bisim_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N2 n1) +

bisim_implies_bisimB < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N2 n1) +

bisim_implies_bisimB < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimT : 
bisim1ImpliesBisim2 refl_t transitivity_t.


  ============================
   bisim1ImpliesBisim2 refl_t transitivity_t

bisim_implies_bisimT < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
     bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q

bisim_implies_bisimT < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
     bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q #

bisim_implies_bisimT < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to transitivity_t P Q #

bisim_implies_bisimT < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
     bisim_up_to transitivity_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
   bisim_up_to transitivity_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
     bisim_up_to transitivity_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, transitivity_t P1 P3 Q2 Q1 /\
     bisim_up_to transitivity_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   transitivity_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to transitivity_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to transitivity_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to transitivity_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to transitivity_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to transitivity_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to transitivity_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to transitivity_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
     bisim_up_to transitivity_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
     bisim_up_to transitivity_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
   bisim_up_to transitivity_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
     bisim_up_to transitivity_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q2, transitivity_t P2 P3 Q1 Q2 /\
     bisim_up_to transitivity_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   transitivity_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to transitivity_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to transitivity_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to transitivity_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to transitivity_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +))

bisim_implies_bisimT < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

bisim_implies_bisimT < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

bisim_implies_bisimT < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

bisim_implies_bisimT < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +)

bisim_implies_bisimT < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to transitivity_t (M2 W) (N2 W) +

bisim_implies_bisimT < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

bisim_implies_bisimT < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

bisim_implies_bisimT < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to transitivity_t (M2 W) (N2 W) +

bisim_implies_bisimT < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to transitivity_t (M2 n1) (N2 n1) +

bisim_implies_bisimT < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to transitivity_t (M2 n1) (N2 n1) +

bisim_implies_bisimT < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
  ============================
   transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to transitivity_t (M2 n1) (N2 n1) +

bisim_implies_bisimT < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
         bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to transitivity_t (M2 n1) (N2 n1) +

bisim_implies_bisimT < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimK : 
bisim1ImpliesBisim2 refl_t context_t.


  ============================
   bisim1ImpliesBisim2 refl_t context_t

bisim_implies_bisimK < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
     bisim_up_to refl_t P Q -> bisim_up_to context_t P Q

bisim_implies_bisimK < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
     bisim_up_to refl_t P Q -> bisim_up_to context_t P Q #

bisim_implies_bisimK < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to context_t P Q #

bisim_implies_bisimK < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, context_t P1 P2 Q2 Q1 /\
     bisim_up_to context_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, context_t P1 P2 Q2 Q1 /\ bisim_up_to context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P2 Q1, context_t P1 P2 Q2 Q1 /\ bisim_up_to context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, context_t P1 P3 Q2 Q1 /\ bisim_up_to context_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
     bisim_up_to context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, context_t P2 P1 Q1 Q2 /\
     bisim_up_to context_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, context_t P2 P1 Q1 Q2 /\ bisim_up_to context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1 Q2, context_t P2 P1 Q1 Q2 /\ bisim_up_to context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q2, context_t P2 P3 Q1 Q2 /\ bisim_up_to context_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +))

bisim_implies_bisimK < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

bisim_implies_bisimK < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

bisim_implies_bisimK < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

bisim_implies_bisimK < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +)

bisim_implies_bisimK < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to context_t (M2 W) (N2 W) +

bisim_implies_bisimK < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

bisim_implies_bisimK < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

bisim_implies_bisimK < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to context_t (M2 W) (N2 W) +

bisim_implies_bisimK < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to context_t (M2 n1) (N2 n1) +

bisim_implies_bisimK < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to context_t (M2 n1) (N2 n1) +

bisim_implies_bisimK < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
  ============================
   context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to context_t (M2 n1) (N2 n1) +

bisim_implies_bisimK < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to context_t (M2 n1) (N2 n1) +

bisim_implies_bisimK < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimBK : 
bisim1ImpliesBisim2 refl_t bisim_context_t.


  ============================
   bisim1ImpliesBisim2 refl_t bisim_context_t

bisim_implies_bisimBK < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
     bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q

bisim_implies_bisimBK < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
     bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q #

bisim_implies_bisimBK < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_context_t P Q #

bisim_implies_bisimBK < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
     bisim_up_to bisim_context_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : refl_t P1 P3 Q2 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
   bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : refl_t P2 P3 Q1 Q3
  H12 : bisim_up_to refl_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : refl_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisim_implies_bisimBK < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H2 : bisim_up_to refl_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisim_implies_bisimBK < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisim_implies_bisimBK < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisim_implies_bisimBK < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisim_implies_bisimBK < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisim_implies_bisimBK < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisim_implies_bisimBK < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisim_implies_bisimBK < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisim_implies_bisimBK < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisim_implies_bisimBK < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisim_implies_bisimBK < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisim_implies_bisimBK < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
         bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisim_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem bisimB_implies_bisimBK : 
bisim1ImpliesBisim2 bisim_t bisim_context_t.


  ============================
   bisim1ImpliesBisim2 bisim_t bisim_context_t

bisimB_implies_bisimBK < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
     bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q

bisimB_implies_bisimBK < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
     bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q #

bisimB_implies_bisimBK < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_context_t P Q #

bisimB_implies_bisimBK < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
     bisim_up_to bisim_context_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
   bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimB_implies_bisimBK < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H2 : bisim_up_to bisim_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimB_implies_bisimBK < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimB_implies_bisimBK < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimB_implies_bisimBK < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimB_implies_bisimBK < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimB_implies_bisimBK < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimB_implies_bisimBK < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimB_implies_bisimBK < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimB_implies_bisimBK < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimB_implies_bisimBK < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimB_implies_bisimBK < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimB_implies_bisimBK < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
         bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimB_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem bisimK_implies_bisimBK : 
bisim1ImpliesBisim2 context_t bisim_context_t.


  ============================
   bisim1ImpliesBisim2 context_t bisim_context_t

bisimK_implies_bisimBK < unfold.


  ============================
   forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
     bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q

bisimK_implies_bisimBK < coinduction.


  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  ============================
   forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
     bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q #

bisimK_implies_bisimBK < intros.

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   bisim_up_to bisim_context_t P Q #

bisimK_implies_bisimBK < unfold.
Subgoal 1:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H2.
Subgoal 1:

  Variables: P, Q, A, P1
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H4 to H3.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists P3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
     bisim_up_to bisim_context_t P3 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists Q3.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H1.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P3 Q2 Q3

Subgoal 1.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : context_t P1 P3 Q2 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain CH.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H2.
Subgoal 2:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H5 to H3.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists M2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists N2.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H1.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain CH.
Subgoal 3:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H2.
Subgoal 3:

  Variables: P, Q, X, M
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H6 to H3.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists M2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists N2.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H1.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain CH.
Subgoal 4:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H2.
Subgoal 4:

  Variables: P, Q, A, Q1
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H7 to H3.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
   bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
     bisim_up_to bisim_context_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists P3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists Q3.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H1.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P2 P3 Q1 Q3

Subgoal 4.2.2 is:
 bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : one Q A Q1
  H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P2
  H11 : context_t P2 P3 Q1 Q3
  H12 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to bisim_context_t P3 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain CH.
Subgoal 5:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H2.
Subgoal 5:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H8 to H3.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists M2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < exists N2.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < case H1.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  H14 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M W) (M2 W) (N W) (N2 W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (dn X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H12 : context_t (M W) (M2 W) (N W) (N2 W)
  H13 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < backchain CH.
Subgoal 6:

  Variables: P, Q
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

bisimK_implies_bisimBK < intros.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H2 : bisim_up_to context_t P Q
  H3 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimK_implies_bisimBK < case H2.
Subgoal 6:

  Variables: P, Q, X, N
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimK_implies_bisimBK < apply H9 to H3.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimK_implies_bisimBK < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

bisimK_implies_bisimBK < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimK_implies_bisimBK < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimK_implies_bisimBK < exists M2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimK_implies_bisimBK < exists N2.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

bisimK_implies_bisimBK < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimK_implies_bisimBK < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimK_implies_bisimBK < case H1.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
          bisim_context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimK_implies_bisimBK < backchain H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
         bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
  H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
  H3 : oneb Q (up X) N
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to bisim_context_t (M2 n1) (N2 n1) +

bisimK_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimB : 
upTo1ImpliesUpTo2 refl_t bisim_t.


  ============================
   upTo1ImpliesUpTo2 refl_t bisim_t

upToBisim_implie_upToBisimB < unfold.


  ============================
   forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimB < intros.

  Variables: P1, P2, Q1, Q2
  H1 : refl_t P1 P2 Q1 Q2
  ============================
   bisim_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimB < case H1.

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_t P2 P2 Q2 Q2

upToBisim_implie_upToBisimB < unfold.
Subgoal 1:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t P2 P2

Subgoal 2 is:
 bisim_up_to refl_t Q2 Q2

upToBisim_implie_upToBisimB < backchain bisim_refl.
Subgoal 2:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t Q2 Q2

upToBisim_implie_upToBisimB < backchain bisim_refl.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimT : 
upTo1ImpliesUpTo2 refl_t transitivity_t.


  ============================
   upTo1ImpliesUpTo2 refl_t transitivity_t

upToBisim_implie_upToBisimT < unfold.


  ============================
   forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimT < intros.

  Variables: P1, P2, Q1, Q2
  H1 : refl_t P1 P2 Q1 Q2
  ============================
   transitivity_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimT < case H1.

  Variables: P1, P2, Q1, Q2
  ============================
   transitivity_t P2 P2 Q2 Q2

upToBisim_implie_upToBisimT < unfold.

  Variables: P1, P2, Q1, Q2
  ============================
   P2 = P2 /\ Q2 = Q2 \/ (exists P1 Q1, bisim_up_to transitivity_t P2 P1 /\
     bisim_up_to transitivity_t P1 P2 /\ bisim_up_to transitivity_t Q2 Q1 /\
     bisim_up_to transitivity_t Q1 Q2)

upToBisim_implie_upToBisimT < left.

  Variables: P1, P2, Q1, Q2
  ============================
   P2 = P2 /\ Q2 = Q2

upToBisim_implie_upToBisimT < search.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimK : 
upTo1ImpliesUpTo2 refl_t context_t.


  ============================
   upTo1ImpliesUpTo2 refl_t context_t

upToBisim_implie_upToBisimK < unfold.


  ============================
   forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimK < intros.

  Variables: P1, P2, Q1, Q2
  H1 : refl_t P1 P2 Q1 Q2
  ============================
   context_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimK < case H1.

  Variables: P1, P2, Q1, Q2
  ============================
   context_t P2 P2 Q2 Q2

upToBisim_implie_upToBisimK < unfold.

  Variables: P1, P2, Q1, Q2
  ============================
   P2 = P2 /\ Q2 = Q2 \/ (exists R, P2 = par P2 R /\ Q2 = par Q2 R)

upToBisim_implie_upToBisimK < left.

  Variables: P1, P2, Q1, Q2
  ============================
   P2 = P2 /\ Q2 = Q2

upToBisim_implie_upToBisimK < search.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimBK : 
upTo1ImpliesUpTo2 refl_t bisim_context_t.


  ============================
   upTo1ImpliesUpTo2 refl_t bisim_context_t

upToBisim_implie_upToBisimBK < unfold.


  ============================
   forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimBK < intros.

  Variables: P1, P2, Q1, Q2
  H1 : refl_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P2 Q1 Q2

upToBisim_implie_upToBisimBK < case H1.

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_context_t P2 P2 Q2 Q2

upToBisim_implie_upToBisimBK < unfold.

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_t P2 P2 Q2 Q2 \/ (exists P1 Q1, bisim_t P2 P1 Q2 Q1 /\ (exists R,
     P1 = par P2 R /\ Q1 = par Q2 R))

upToBisim_implie_upToBisimBK < left.

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_t P2 P2 Q2 Q2

upToBisim_implie_upToBisimBK < unfold.
Subgoal 1:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t P2 P2

Subgoal 2 is:
 bisim_up_to refl_t Q2 Q2

upToBisim_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t Q2 Q2

upToBisim_implie_upToBisimBK < backchain bisim_refl.
Proof completed.
Abella < Theorem upToBisimB_implie_upToBisimBK : 
upTo1ImpliesUpTo2 bisim_t bisim_context_t.


  ============================
   upTo1ImpliesUpTo2 bisim_t bisim_context_t

upToBisimB_implie_upToBisimBK < unfold.


  ============================
   forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2

upToBisimB_implie_upToBisimBK < intros.

  Variables: P1, P2, Q1, Q2
  H1 : bisim_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P2 Q1 Q2

upToBisimB_implie_upToBisimBK < case H1.

  Variables: P1, P2, Q1, Q2
  H2 : bisim_up_to refl_t P1 P2
  H3 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_context_t P1 P2 Q1 Q2

upToBisimB_implie_upToBisimBK < unfold.

  Variables: P1, P2, Q1, Q2
  H2 : bisim_up_to refl_t P1 P2
  H3 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_t P1 P2 Q1 Q2 \/ (exists P3 Q3, bisim_t P1 P3 Q1 Q3 /\ (exists R,
     P3 = par P2 R /\ Q3 = par Q2 R))

upToBisimB_implie_upToBisimBK < left.

  Variables: P1, P2, Q1, Q2
  H2 : bisim_up_to refl_t P1 P2
  H3 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_t P1 P2 Q1 Q2

upToBisimB_implie_upToBisimBK < unfold.
Subgoal 1:

  Variables: P1, P2, Q1, Q2
  H2 : bisim_up_to refl_t P1 P2
  H3 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_up_to refl_t P1 P2

Subgoal 2 is:
 bisim_up_to refl_t Q1 Q2

upToBisimB_implie_upToBisimBK < search.
Subgoal 2:

  Variables: P1, P2, Q1, Q2
  H2 : bisim_up_to refl_t P1 P2
  H3 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_up_to refl_t Q1 Q2

upToBisimB_implie_upToBisimBK < search.
Proof completed.
Abella < Theorem upToBisimK_implie_upToBisimBK : 
upTo1ImpliesUpTo2 context_t bisim_context_t.


  ============================
   upTo1ImpliesUpTo2 context_t bisim_context_t

upToBisimK_implie_upToBisimBK < unfold.


  ============================
   forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2

upToBisimK_implie_upToBisimBK < intros.

  Variables: P1, P2, Q1, Q2
  H1 : context_t P1 P2 Q1 Q2
  ============================
   bisim_context_t P1 P2 Q1 Q2

upToBisimK_implie_upToBisimBK < case H1.

  Variables: P1, P2, Q1, Q2
  H2 : P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R)
  ============================
   bisim_context_t P1 P2 Q1 Q2

upToBisimK_implie_upToBisimBK < unfold.

  Variables: P1, P2, Q1, Q2
  H2 : P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R)
  ============================
   bisim_t P1 P2 Q1 Q2 \/ (exists P3 Q3, bisim_t P1 P3 Q1 Q3 /\ (exists R,
     P3 = par P2 R /\ Q3 = par Q2 R))

upToBisimK_implie_upToBisimBK < case H2.
Subgoal 1:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_t P2 P2 Q2 Q2 \/ (exists P3 Q3, bisim_t P2 P3 Q2 Q3 /\ (exists R,
     P3 = par P2 R /\ Q3 = par Q2 R))

Subgoal 2 is:
 bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
   bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
   Q3 = par Q2 R1))

upToBisimK_implie_upToBisimBK < left.
Subgoal 1:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_t P2 P2 Q2 Q2

Subgoal 2 is:
 bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
   bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
   Q3 = par Q2 R1))

upToBisimK_implie_upToBisimBK < unfold.
Subgoal 1.1:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t P2 P2

Subgoal 1.2 is:
 bisim_up_to refl_t Q2 Q2

Subgoal 2 is:
 bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
   bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
   Q3 = par Q2 R1))

upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 1.2:

  Variables: P1, P2, Q1, Q2
  ============================
   bisim_up_to refl_t Q2 Q2

Subgoal 2 is:
 bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
   bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
   Q3 = par Q2 R1))

upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
     bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
     Q3 = par Q2 R1))

upToBisimK_implie_upToBisimBK < right.
Subgoal 2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   exists P3 Q3, bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1,
     P3 = par P2 R1 /\ Q3 = par Q2 R1)

upToBisimK_implie_upToBisimBK < exists par P2 R.
Subgoal 2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   exists Q3, bisim_t (par P2 R) (par P2 R) (par Q2 R) Q3 /\ (exists R1,
     par P2 R = par P2 R1 /\ Q3 = par Q2 R1)

upToBisimK_implie_upToBisimBK < exists par Q2 R.
Subgoal 2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   bisim_t (par P2 R) (par P2 R) (par Q2 R) (par Q2 R) /\ (exists R1,
     par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1)

upToBisimK_implie_upToBisimBK < split.
Subgoal 2.1:

  Variables: P1, P2, Q1, Q2, R
  ============================
   bisim_t (par P2 R) (par P2 R) (par Q2 R) (par Q2 R)

Subgoal 2.2 is:
 exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1

upToBisimK_implie_upToBisimBK < unfold.
Subgoal 2.1.1:

  Variables: P1, P2, Q1, Q2, R
  ============================
   bisim_up_to refl_t (par P2 R) (par P2 R)

Subgoal 2.1.2 is:
 bisim_up_to refl_t (par Q2 R) (par Q2 R)

Subgoal 2.2 is:
 exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1

upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2.1.2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   bisim_up_to refl_t (par Q2 R) (par Q2 R)

Subgoal 2.2 is:
 exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1

upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2.2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1

upToBisimK_implie_upToBisimBK < exists R.
Subgoal 2.2:

  Variables: P1, P2, Q1, Q2, R
  ============================
   par P2 R = par P2 R /\ par Q2 R = par Q2 R

upToBisimK_implie_upToBisimBK < search.
Proof completed.
Abella < Define equiv_rel : (proc -> proc -> prop) -> prop by 
equiv_rel Rel := (forall P, Rel P P) /\ (forall P Q, Rel P Q -> Rel Q P) /\ (forall P Q R,
  Rel P Q -> Rel Q R -> Rel P R).
Abella < Define bisim_is_equiv : prop by 
bisim_is_equiv := equiv_rel (bisim_up_to refl_t).
Abella < Define bisimB_is_equiv : prop by 
bisimB_is_equiv := equiv_rel (bisim_up_to bisim_t).
Abella < Define bisimT_is_equiv : prop by 
bisimT_is_equiv := equiv_rel (bisim_up_to transitivity_t).
Abella < Define subst_rel : (proc -> proc -> prop) -> prop by 
subst_rel Rel := forall P Q R, Rel P Q -> Rel (par P R) (par Q R).
Abella < Define cong_rel : (proc -> proc -> prop) -> prop by 
cong_rel Rel := equiv_rel Rel /\ subst_rel Rel.
Abella < Define bisim_is_subst : prop by 
bisim_is_subst := subst_rel (bisim_up_to refl_t).
Abella < Define bisimK_is_subst : prop by 
bisimK_is_subst := subst_rel (bisim_up_to context_t).
Abella < Define bisimBK_is_subst : prop by 
bisimBK_is_subst := subst_rel (bisim_up_to bisim_context_t).
Abella < Define bisim_is_cong : prop by 
bisim_is_cong := cong_rel (bisim_up_to refl_t).
Abella < Define bisimK_is_cong : prop by 
bisimK_is_cong := cong_rel (bisim_up_to context_t).
Abella < Define bisimBK_is_cong : prop by 
bisimBK_is_cong := cong_rel (bisim_up_to bisim_context_t).
Abella < Theorem bisimB_soundIff_completeness : 
bisim_is_equiv -> is_sound bisim_t -> bisimB_is_equiv.


  ============================
   bisim_is_equiv -> is_sound bisim_t -> bisimB_is_equiv

bisimB_soundIff_completeness < intros.


  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   bisimB_is_equiv

bisimB_soundIff_completeness < unfold.


  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   equiv_rel (bisim_up_to bisim_t)

bisimB_soundIff_completeness < unfold.
Subgoal 1:


  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   forall P, bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < intros.
Subgoal 1:

  Variables: P
  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H1.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H3 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H3.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H4 with P = P.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 1:

  Variables: P
  H2 : is_sound bisim_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < backchain implies.
Subgoal 2:


  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < intros.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  H3 : bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H2.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H4 to H3.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H1.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H6 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H6.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H8 to H5.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to bisim_t P Q
  H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < backchain implies.
Subgoal 3:


  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  ============================
   forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
     bisim_up_to bisim_t P R

bisimB_soundIff_completeness < intros.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H2 : is_sound bisim_t
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H2.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H5 to H3.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H5 to H4.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H1.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H8 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case H8.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply H11 to H6 H7.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to bisim_t P Q
  H4 : bisim_up_to bisim_t Q R
  H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_t P R

bisimB_soundIff_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimT_soundIff_completeness : 
bisim_is_equiv -> is_sound transitivity_t -> bisimT_is_equiv.


  ============================
   bisim_is_equiv -> is_sound transitivity_t -> bisimT_is_equiv

bisimT_soundIff_completeness < intros.


  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   bisimT_is_equiv

bisimT_soundIff_completeness < unfold.


  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   equiv_rel (bisim_up_to transitivity_t)

bisimT_soundIff_completeness < unfold.
Subgoal 1:


  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   forall P, bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < intros.
Subgoal 1:

  Variables: P
  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H1.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H3 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H3.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H4 with P = P.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
  loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 1:

  Variables: P
  H2 : is_sound transitivity_t
  H4 : forall P, bisim_up_to refl_t P P
  H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H7 : bisim_up_to refl_t P P
  H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
              bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
  ============================
   bisim_up_to transitivity_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < backchain implies.
Subgoal 2:


  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   forall P Q, bisim_up_to transitivity_t P Q ->
     bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < intros.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  H3 : bisim_up_to transitivity_t P Q
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H2.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H4 to H3.
Subgoal 2:

  Variables: P, Q
  H1 : bisim_is_equiv
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H1.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H6 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H6.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H8 to H5.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
  loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 2:

  Variables: P, Q
  H3 : bisim_up_to transitivity_t P Q
  H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t Q P
  H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
              bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
  ============================
   bisim_up_to transitivity_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to transitivity_t P Q ->
   bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < backchain implies.
Subgoal 3:


  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  ============================
   forall P Q R, bisim_up_to transitivity_t P Q ->
     bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < intros.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H2 : is_sound transitivity_t
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H2.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H5 to H3.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H5 to H4.
Subgoal 3:

  Variables: P, Q, R
  H1 : bisim_is_equiv
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H1.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H8 : equiv_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case H8.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply H11 to H6 H7.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
  loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 3:

  Variables: P, Q, R
  H3 : bisim_up_to transitivity_t P Q
  H4 : bisim_up_to transitivity_t Q R
  H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
  H6 : bisim_up_to refl_t P Q
  H7 : bisim_up_to refl_t Q R
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
              bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
  ============================
   bisim_up_to transitivity_t P R

bisimT_soundIff_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimK_and_subst_completeness : 
bisim_is_subst -> is_sound context_t -> bisimK_is_subst.


  ============================
   bisim_is_subst -> is_sound context_t -> bisimK_is_subst

bisimK_and_subst_completeness < intros.


  H1 : bisim_is_subst
  H2 : is_sound context_t
  ============================
   bisimK_is_subst

bisimK_and_subst_completeness < unfold.


  H1 : bisim_is_subst
  H2 : is_sound context_t
  ============================
   subst_rel (bisim_up_to context_t)

bisimK_and_subst_completeness < unfold.


  H1 : bisim_is_subst
  H2 : is_sound context_t
  ============================
   forall P Q R, bisim_up_to context_t P Q ->
     bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < intros.

  Variables: P, Q, R
  H1 : bisim_is_subst
  H2 : is_sound context_t
  H3 : bisim_up_to context_t P Q
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < case H2.

  Variables: P, Q, R
  H1 : bisim_is_subst
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < apply H4 to H3.

  Variables: P, Q, R
  H1 : bisim_is_subst
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < case H1.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < case H6.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < apply H7 to H5 with R = R.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H8 : bisim_up_to refl_t (par P R) (par Q R)
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < apply upToBisim_implie_upToBisimK.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H8 : bisim_up_to refl_t (par P R) (par Q R)
  H9 : upTo1ImpliesUpTo2 refl_t context_t
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < apply bisim_implies_bisimK.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H8 : bisim_up_to refl_t (par P R) (par Q R)
  H9 : upTo1ImpliesUpTo2 refl_t context_t
  loadLemma : bisim1ImpliesBisim2 refl_t context_t
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < case implies : loadLemma.

  Variables: P, Q, R
  H3 : bisim_up_to context_t P Q
  H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H8 : bisim_up_to refl_t (par P R) (par Q R)
  H9 : upTo1ImpliesUpTo2 refl_t context_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
              bisim_up_to refl_t P Q -> bisim_up_to context_t P Q
  ============================
   bisim_up_to context_t (par P R) (par Q R)

bisimK_and_subst_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimBK_and_subst_completeness : 
bisim_is_cong -> is_sound bisim_context_t -> bisimBK_is_subst.


  ============================
   bisim_is_cong -> is_sound bisim_context_t -> bisimBK_is_subst

bisimBK_and_subst_completeness < intros.


  H1 : bisim_is_cong
  H2 : is_sound bisim_context_t
  ============================
   bisimBK_is_subst

bisimBK_and_subst_completeness < unfold.


  H1 : bisim_is_cong
  H2 : is_sound bisim_context_t
  ============================
   subst_rel (bisim_up_to bisim_context_t)

bisimBK_and_subst_completeness < unfold.


  H1 : bisim_is_cong
  H2 : is_sound bisim_context_t
  ============================
   forall P Q R, bisim_up_to bisim_context_t P Q ->
     bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < intros.

  Variables: P, Q, R
  H1 : bisim_is_cong
  H2 : is_sound bisim_context_t
  H3 : bisim_up_to bisim_context_t P Q
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < case H2.

  Variables: P, Q, R
  H1 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < apply H4 to H3.

  Variables: P, Q, R
  H1 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < case H1.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H6 : cong_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < case H6.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H8 : subst_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < case H8.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H9 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < apply H9 to H5 with R = R.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H9 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H10 : bisim_up_to refl_t (par P R) (par Q R)
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < apply upToBisim_implie_upToBisimBK.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H9 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H10 : bisim_up_to refl_t (par P R) (par Q R)
  H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < apply bisim_implies_bisimBK.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H9 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H10 : bisim_up_to refl_t (par P R) (par Q R)
  H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_context_t
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < case implies : loadLemma.

  Variables: P, Q, R
  H3 : bisim_up_to bisim_context_t P Q
  H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
  H5 : bisim_up_to refl_t P Q
  H7 : equiv_rel (bisim_up_to refl_t)
  H9 : forall P Q R, bisim_up_to refl_t P Q ->
         bisim_up_to refl_t (par P R) (par Q R)
  H10 : bisim_up_to refl_t (par P R) (par Q R)
  H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q
  ============================
   bisim_up_to bisim_context_t (par P R) (par Q R)

bisimBK_and_subst_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimB_soundIff_soundness : 
bisimB_is_equiv -> bisim_is_equiv -> is_sound bisim_t.


  ============================
   bisimB_is_equiv -> bisim_is_equiv -> is_sound bisim_t

bisimB_soundIff_soundness < intros.


  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  ============================
   is_sound bisim_t

bisimB_soundIff_soundness < unfold.


  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q

bisimB_soundIff_soundness < coinduction.


  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q #

bisimB_soundIff_soundness < intros.

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H3 : bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t P Q #

bisimB_soundIff_soundness < case H3.

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t P Q #

bisimB_soundIff_soundness < unfold.
Subgoal 1:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H4 to H10.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
     bisim_up_to refl_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists P1.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists Q2.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H1.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  H14 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H14.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : bisim_t P1 P3 Q2 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H12.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P1 P3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P1 P3
  H21 : bisim_up_to bisim_t Q2 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P1 P3
  H21 : bisim_up_to bisim_t Q2 Q3
  H22 : bisim_up_to bisim_t P1 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P1 P3
  H21 : bisim_up_to bisim_t Q2 Q3
  H22 : bisim_up_to bisim_t P1 Q3
  H23 : bisim_up_to bisim_t Q3 Q2
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P1 P3
  H19 : bisim_up_to refl_t Q2 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P1 P3
  H21 : bisim_up_to bisim_t Q2 Q3
  H22 : bisim_up_to bisim_t P1 Q3
  H23 : bisim_up_to bisim_t Q3 Q2
  H24 : bisim_up_to bisim_t P1 Q2
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < backchain CH.
Subgoal 2:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 2:

  Variables: P, Q, X, M
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H5 to H10.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists M.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists N.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H12 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H1.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H15 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H15.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H13.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H20.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H18 to H21 H14.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H22.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  H24 : bisim_up_to bisim_t (N2 W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H18 to H23 H24.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  H24 : bisim_up_to bisim_t (N2 W) (N W)
  H25 : bisim_up_to bisim_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < backchain CH.
Subgoal 3:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 3:

  Variables: P, Q, X, M
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H6 to H10.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists M.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists N.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H1.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H14 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H14.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H12.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  H23 : bisim_up_to bisim_t (N2 n1) (N n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  H23 : bisim_up_to bisim_t (N2 n1) (N n1)
  H24 : bisim_up_to bisim_t (M n1) (N n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < backchain CH.
Subgoal 4:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H7 to H10.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
     bisim_up_to refl_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists P2.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists Q1.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H1.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  H14 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H14.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : bisim_t P2 P3 Q1 Q3
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H12.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P2 P3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P2 P3
  H21 : bisim_up_to bisim_t Q1 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P2 P3
  H21 : bisim_up_to bisim_t Q1 Q3
  H22 : bisim_up_to bisim_t P2 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P2 P3
  H21 : bisim_up_to bisim_t Q1 Q3
  H22 : bisim_up_to bisim_t P2 Q3
  H23 : bisim_up_to bisim_t Q3 Q1
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to bisim_t P3 Q3
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t P2 P3
  H19 : bisim_up_to refl_t Q1 Q3
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t P2 P3
  H21 : bisim_up_to bisim_t Q1 Q3
  H22 : bisim_up_to bisim_t P2 Q3
  H23 : bisim_up_to bisim_t Q3 Q1
  H24 : bisim_up_to bisim_t P2 Q1
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < backchain CH.
Subgoal 5:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 5:

  Variables: P, Q, X, N
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H8 to H10.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists M.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < exists N.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < search.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H12 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H1.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H15 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H15.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case H13.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply implies to upToImplies H20.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H18 to H21 H14.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H17 to H22.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  H24 : bisim_up_to bisim_t (N2 W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < apply H18 to H23 H24.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H14 : bisim_up_to bisim_t (M2 W) (N2 W)
  H16 : forall P, bisim_up_to bisim_t P P
  H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H19 : bisim_up_to refl_t (M W) (M2 W)
  H20 : bisim_up_to refl_t (N W) (N2 W)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H21 : bisim_up_to bisim_t (M W) (M2 W)
  H22 : bisim_up_to bisim_t (N W) (N2 W)
  H23 : bisim_up_to bisim_t (M W) (N2 W)
  H24 : bisim_up_to bisim_t (N2 W) (N W)
  H25 : bisim_up_to bisim_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < backchain CH.
Subgoal 6:

  Variables: P, Q
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisimB_soundIff_soundness < intros.
Subgoal 6:

  Variables: P, Q, X, N
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimB_soundIff_soundness < apply H9 to H10.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimB_soundIff_soundness < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimB_soundIff_soundness < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisimB_soundIff_soundness < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisimB_soundIff_soundness < exists M.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

bisimB_soundIff_soundness < exists N.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

bisimB_soundIff_soundness < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < search.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimB_is_equiv
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < case H1.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H14 : equiv_rel (bisim_up_to bisim_t)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < case H14.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < case H12.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  H23 : bisim_up_to bisim_t (N2 n1) (N n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_equiv
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H15 : forall P, bisim_up_to bisim_t P P
  H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
  H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
          bisim_up_to bisim_t P R
  H18 : bisim_up_to refl_t (M n1) (M2 n1)
  H19 : bisim_up_to refl_t (N n1) (N2 n1)
  upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
  implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
              bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
  H20 : bisim_up_to bisim_t (M n1) (M2 n1)
  H21 : bisim_up_to bisim_t (N n1) (N2 n1)
  H22 : bisim_up_to bisim_t (M n1) (N2 n1)
  H23 : bisim_up_to bisim_t (N2 n1) (N n1)
  H24 : bisim_up_to bisim_t (M n1) (N n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimB_soundIff_soundness < backchain CH.
Proof completed.
Abella < Theorem bisimT_soundIff_soundness : 
bisimT_is_equiv -> bisim_is_equiv -> is_sound transitivity_t.


  ============================
   bisimT_is_equiv -> bisim_is_equiv -> is_sound transitivity_t

bisimT_soundIff_soundness < skip.
Proof completed.
Abella < Theorem bisimK_and_subst_soundness : 
bisimK_is_subst -> bisim_is_cong -> is_sound context_t.


  ============================
   bisimK_is_subst -> bisim_is_cong -> is_sound context_t

bisimK_and_subst_soundness < intros.


  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  ============================
   is_sound context_t

bisimK_and_subst_soundness < unfold.


  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  ============================
   forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q

bisimK_and_subst_soundness < coinduction.


  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  ============================
   forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q #

bisimK_and_subst_soundness < intros.

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H3 : bisim_up_to context_t P Q
  ============================
   bisim_up_to refl_t P Q #

bisimK_and_subst_soundness < case H3.

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   bisim_up_to refl_t P Q #

bisimK_and_subst_soundness < unfold.
Subgoal 1:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 1:

  Variables: P, Q, A, P1
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H4 to H10.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists Q2.
Subgoal 1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
     bisim_up_to refl_t P2 Q1 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 1.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   one Q A Q2

Subgoal 1.2 is:
 exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists P1.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists Q2.
Subgoal 1.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 1.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P1 P1 Q2 Q2

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H1.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  H14 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H14.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H12 : context_t P1 P3 Q2 Q3
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H12.
Subgoal 1.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P1
  H11 : one Q A Q2
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H16 : P1 = P3 /\ Q2 = Q3 \/ (exists R, P1 = par P3 R /\ Q2 = par Q3 R)
  ============================
   bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H16.
Subgoal 1.2.2.1:

  Variables: P, Q, A, P1, Q2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A P3
  H11 : one Q A Q3
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t P3 Q3 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 1.2.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A (par P3 R)
  H11 : one Q A (par Q3 R)
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H15 to H13 with R = R.
Subgoal 1.2.2.2:

  Variables: P, Q, A, P1, Q2, P3, Q3, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one P A (par P3 R)
  H11 : one Q A (par Q3 R)
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : bisim_up_to context_t (par P3 R) (par Q3 R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 2:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 2:

  Variables: P, Q, X, M
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H5 to H10.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists N.
Subgoal 2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 2.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists M.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists N.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H12 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H1.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H15 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H15.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H13.
Subgoal 2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
          N W = par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H17.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H20 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H20.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H21 to H14 H18 H19.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, N, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H22 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H16 to H14 with R = R.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H21 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H21.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H22 to H20 H18 H19.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (dn X) M
  H11 : oneb Q (dn X) N
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H23 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 3:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 3:

  Variables: P, Q, X, M
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H6 to H10.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists N.
Subgoal 3:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 3.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists M.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists N.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 3.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 3.2.1:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H1.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H14 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H14.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H12.
Subgoal 3.2.2:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) M
  H11 : oneb Q (up X) N
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H16 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
          N n1 = par (N2 n1) R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H16.
Subgoal 3.2.2.1:

  Variables: P, Q, X, M, N, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) (z1\M2 z1)
  H11 : oneb Q (up X) (z1\N2 z1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M2 n1) (N2 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 3.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H11 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H15 to H13 with R = R n1.
Subgoal 3.2.2.2:

  Variables: P, Q, X, M, N, M2, N2, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H11 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 4:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 4:

  Variables: P, Q, A, Q1
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H7 to H10.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists P2.
Subgoal 4:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
     bisim_up_to refl_t P1 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 4.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   one P A P2

Subgoal 4.2 is:
 exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists P2.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists Q1.
Subgoal 4.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 4.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   refl_t P2 P2 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H1.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  H14 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H14.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H12 : context_t P2 P3 Q1 Q3
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H12.
Subgoal 4.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q1
  H11 : one P A P2
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H16 : P2 = P3 /\ Q1 = Q3 \/ (exists R, P2 = par P3 R /\ Q1 = par Q3 R)
  ============================
   bisim_up_to refl_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H16.
Subgoal 4.2.2.1:

  Variables: P, Q, A, Q1, P2, P3, Q3
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A Q3
  H11 : one P A P3
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t P3 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 4.2.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A (par Q3 R)
  H11 : one P A (par P3 R)
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H15 to H13 with R = R.
Subgoal 4.2.2.2:

  Variables: P, Q, A, Q1, P2, P3, Q3, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : one Q A (par Q3 R)
  H11 : one P A (par P3 R)
  H13 : bisim_up_to context_t P3 Q3
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : bisim_up_to context_t (par P3 R) (par Q3 R)
  ============================
   bisim_up_to refl_t (par P3 R) (par Q3 R) +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 5:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 5:

  Variables: P, Q, X, N
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H8 to H10.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists M.
Subgoal 5:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 5.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists M.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < exists N.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   forall W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 5.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < split.
Subgoal 5.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   refl_t (M W) (M W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < search.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H12 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H1.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H15 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H15.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H13 : context_t (M W) (M2 W) (N W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H13.
Subgoal 5.2.2:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
          N W = par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H17.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H20 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H20.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H21 to H14 H18 H19.
Subgoal 5.2.2.1:

  Variables: P, Q, X, N, M, M2, N2, W
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = M2 W
  H19 : N W = N2 W
  H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H22 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H16 to H14 with R = R.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H21 : equally_structured (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < case H21.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < apply H22 to H20 H18 H19.
Subgoal 5.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, W, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : oneb P (dn X) M
  H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to context_t (M2 W) (N2 W)
  H14 : bisim_up_to context_t (M2 W) (N2 W)
  H16 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H18 : M W = par (M2 W) R
  H19 : N W = par (N2 W) R
  H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
  H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
          Y2 = X2 -> bisim_up_to context_t Y1 Y2
  H23 : bisim_up_to context_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < backchain CH.
Subgoal 6:

  Variables: P, Q
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisimK_and_subst_soundness < intros.
Subgoal 6:

  Variables: P, Q, X, N
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimK_and_subst_soundness < apply H9 to H10.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimK_and_subst_soundness < exists M.
Subgoal 6:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimK_and_subst_soundness < split.
Subgoal 6.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisimK_and_subst_soundness < search.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisimK_and_subst_soundness < exists M.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

bisimK_and_subst_soundness < exists N.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N W) (N W) /\
     bisim_up_to refl_t (M W) (N W) +

bisimK_and_subst_soundness < intros.
Subgoal 6.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < split.
Subgoal 6.2.1:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   refl_t (M n1) (M n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < search.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H1 : bisimK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < case H1.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H14 : subst_rel (bisim_up_to context_t)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < case H14.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < case H12.
Subgoal 6.2.2:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : oneb P (up X) M
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H16 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
          N n1 = par (N2 n1) R)
  ============================
   bisim_up_to refl_t (M n1) (N n1) +

bisimK_and_subst_soundness < case H16.
Subgoal 6.2.2.1:

  Variables: P, Q, X, N, M, M2, N2
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) (z1\N2 z1)
  H11 : oneb P (up X) (z1\M2 z1)
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (M2 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

bisimK_and_subst_soundness < backchain CH.
Subgoal 6.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H11 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

bisimK_and_subst_soundness < apply H15 to H13 with R = R n1.
Subgoal 6.2.2.2:

  Variables: P, Q, X, N, M, M2, N2, R
  H2 : bisim_is_cong
  CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to context_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) (z1\par (N2 z1) (R z1))
  H11 : oneb P (up X) (z1\par (M2 z1) (R z1))
  H13 : bisim_up_to context_t (M2 n1) (N2 n1)
  H15 : forall P Q R, bisim_up_to context_t P Q ->
          bisim_up_to context_t (par P R) (par Q R)
  H17 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
  ============================
   bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +

bisimK_and_subst_soundness < backchain CH.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness_fst : 
bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t.


  ============================
   bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t

bisimBK_and_subst_soundness_fst < intros.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   is_sound_fst bisim_context_t

bisimBK_and_subst_soundness_fst < unfold.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q

bisimBK_and_subst_soundness_fst < coinduction.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  ============================
   forall P Q, (exists R S, bisim_up_to refl_t P R /\
     bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
     bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < intros.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H1.

  Variables: P, Q
  H2 : bisim_is_cong
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  H4 : subst_rel (bisim_up_to bisim_context_t)
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H4.

  Variables: P, Q
  H2 : bisim_is_cong
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H2.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H6 : cong_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H6.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H7 : equiv_rel (bisim_up_to refl_t)
  H8 : subst_rel (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H7.

  Variables: P, Q
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H3 : exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < case H3.

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q #

bisimBK_and_subst_soundness_fst < unfold.
Subgoal 1:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : one P A P1
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 1:

  Variables: P, Q, R, S, A, P1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H16 to H15.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H25 to H22.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H34 to H31.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists Q5.
Subgoal 1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 1.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   one Q A Q5

Subgoal 1.2 is:
 exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists P1.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists Q5.
Subgoal 1.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 1.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   refl_t P1 P1 Q5 Q5

Subgoal 1.2.2 is:
 bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P1
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q2
  H23 : refl_t P1 P3 Q2 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q2 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P1 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H23.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A Q1
  H32 : bisim_context_t Q3 P2 Q1 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q5
  H41 : refl_t Q1 P4 Q5 Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q5 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H41.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H32 : bisim_context_t Q3 P2 P4 Q4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H32.
Subgoal 1.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H43 : bisim_t Q3 P2 P4 Q4 \/ (exists P1 Q2, bisim_t Q3 P1 P4 Q2 /\
          (exists R, P1 = par P2 R /\ Q2 = par Q4 R))
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H43.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H44 : bisim_t Q3 P2 P4 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 P2
  H46 : bisim_up_to refl_t P4 Q4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 P2
  H46 : bisim_up_to refl_t P4 Q4
  H47 : bisim_up_to refl_t P3 P2
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 P2
  H46 : bisim_up_to refl_t P4 Q4
  H47 : bisim_up_to refl_t P3 P2
  H48 : bisim_up_to refl_t Q4 P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 1.2.2.1:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 P2
  H46 : bisim_up_to refl_t P4 Q4
  H47 : bisim_up_to refl_t P3 P2
  H48 : bisim_up_to refl_t Q4 P4
  H49 : bisim_up_to refl_t Q4 Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 1.2.2.2 is:
 bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H44 : bisim_t Q3 (par P2 R1) P4 (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 (par P2 R1)
  H46 : bisim_up_to refl_t P4 (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 (par P2 R1)
  H46 : bisim_up_to refl_t P4 (par Q4 R1)
  H47 : bisim_up_to refl_t P3 (par P2 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 (par P2 R1)
  H46 : bisim_up_to refl_t P4 (par Q4 R1)
  H47 : bisim_up_to refl_t P3 (par P2 R1)
  H48 : bisim_up_to refl_t (par Q4 R1) P4
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 (par P2 R1)
  H46 : bisim_up_to refl_t P4 (par Q4 R1)
  H47 : bisim_up_to refl_t P3 (par P2 R1)
  H48 : bisim_up_to refl_t (par Q4 R1) P4
  H49 : bisim_up_to refl_t (par Q4 R1) Q6
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1.
Subgoal 1.2.2.2:

  Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one P A P3
  H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
          refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one R A Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
          bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one S A P4
  H33 : bisim_up_to bisim_context_t P2 Q4
  H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one Q A Q6
  H42 : bisim_up_to refl_t P4 Q6
  H45 : bisim_up_to refl_t Q3 (par P2 R1)
  H46 : bisim_up_to refl_t P4 (par Q4 R1)
  H47 : bisim_up_to refl_t P3 (par P2 R1)
  H48 : bisim_up_to refl_t (par Q4 R1) P4
  H49 : bisim_up_to refl_t (par Q4 R1) Q6
  H50 : bisim_up_to bisim_context_t (par P2 R1) (par Q4 R1)
  ============================
   bisim_up_to refl_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 2:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (dn X) M
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 2:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H17 to H15.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H25 to H22.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H33 to H30.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   oneb Q (dn X) N4

Subgoal 2.2 is:
 exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists M.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   refl_t (M W) (M W) (N4 W) (N4 W)

Subgoal 2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H23 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H31 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H39 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H44 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H40.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H44 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H50 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H50.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H51 to H41 H47 H46.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H51 to H45 H49 H48.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H42.
Subgoal 2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H54 : bisim_t (N W) (M1 W) (N1 W) (N3 W) \/ (exists P2 Q2,
          bisim_t (N W) P2 (N1 W) Q2 /\ (exists R, P2 = par (M1 W) R /\
          Q2 = par (N3 W) R))
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H54.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H55 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H55.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (M1 W)
  H57 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H52 H56.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (M1 W)
  H57 : bisim_up_to refl_t (N1 W) (N3 W)
  H58 : bisim_up_to refl_t (M W) (M1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (M1 W)
  H57 : bisim_up_to refl_t (N1 W) (N3 W)
  H58 : bisim_up_to refl_t (M W) (M1 W)
  H59 : bisim_up_to refl_t (N3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H59 H53.
Subgoal 2.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (M1 W)
  H57 : bisim_up_to refl_t (N1 W) (N3 W)
  H58 : bisim_up_to refl_t (M W) (M1 W)
  H59 : bisim_up_to refl_t (N3 W) (N1 W)
  H60 : bisim_up_to refl_t (N3 W) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 2.2.2.2 is:
 bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H55 : bisim_t (N W) (par (M1 W) R1) (N1 W) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H55.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H52 H56.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H59 H53.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  H60 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H5 to H43 with R = R1.
Subgoal 2.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (dn X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (dn X) N
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb S (dn X) N1
  H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_context_t (M1 W) (N3 W)
  H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb Q (dn X) N4
  H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
          bisim_up_to refl_t (M3 W) (N5 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M3 W) (N5 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : N4 W = N5 W
  H49 : N1 W = M3 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (N1 W) (N4 W)
  H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
  H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
  H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
  H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
  H60 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
  H61 : bisim_up_to bisim_context_t (par (M1 W) R1) (par (N3 W) R1)
  ============================
   bisim_up_to refl_t (M W) (N4 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 3:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (up X) M
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 3:

  Variables: P, Q, R, S, X, M
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H18 to H15.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H27 to H22.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H14 : bisim_up_to refl_t S Q
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H36 to H31.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 3:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 3.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   oneb Q (up X) N4

Subgoal 3.2 is:
 exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists M.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
     bisim_up_to refl_t (M W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
     bisim_up_to refl_t (M W) (N4 W) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 3.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
     bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 3.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   refl_t (M n1) (M n1) (N4 n1) (N4 n1)

Subgoal 3.2.2 is:
 bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) M
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) N
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H23.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) N1
  H32 : bisim_context_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) N4
  H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N4 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H41.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H32 : bisim_context_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H32.
Subgoal 3.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H43 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1) \/ (exists P2 Q2,
          bisim_t (N2 n1) P2 (M3 n1) Q2 /\ (exists R, P2 = par (M1 n1) R /\
          Q2 = par (N3 n1) R))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H43.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H44 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H48 : bisim_up_to refl_t (N3 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 3.2.2.1:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
  H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
  H48 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H49 : bisim_up_to refl_t (N3 n1) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 3.2.2.2 is:
 bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H44 : bisim_t (N2 n1) (par (M1 n1) (R1 n1)) (M3 n1) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  H49 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1 n1.
Subgoal 3.2.2.2:

  Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb P (up X) (z1\M2 z1)
  H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb R (up X) (z1\N2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb S (up X) (z1\M3 z1)
  H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
  H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb Q (up X) (z1\N5 z1)
  H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
  H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
  H49 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
  H50 : bisim_up_to bisim_context_t (par (M1 n1) (R1 n1)) (par (N3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M2 n1) (N5 n1) +

Subgoal 4 is:
 forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 4:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : one Q A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H19 to H15.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H28 to H22.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H37 to H31.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists P5.
Subgoal 4:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
     bisim_up_to refl_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 4.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   one P A P5

Subgoal 4.2 is:
 exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists P5.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists Q1.
Subgoal 4.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 4.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   refl_t P5 P5 Q1 Q1

Subgoal 4.2.2 is:
 bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q1
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P2
  H23 : refl_t P2 P3 Q1 Q3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P2 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q1 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H23.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A P1
  H32 : bisim_context_t P1 P4 P3 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P5
  H41 : refl_t P5 P6 P1 Q4
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P5 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H41.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H32 : bisim_context_t Q4 P4 P3 Q2
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H32.
Subgoal 4.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H43 : bisim_t Q4 P4 P3 Q2 \/ (exists P2 Q1, bisim_t Q4 P2 P3 Q1 /\
          (exists R, P2 = par P4 R /\ Q1 = par Q2 R))
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H43.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H44 : bisim_t Q4 P4 P3 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 P4
  H46 : bisim_up_to refl_t P3 Q2
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 P4
  H46 : bisim_up_to refl_t P3 Q2
  H47 : bisim_up_to refl_t P6 P4
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 P4
  H46 : bisim_up_to refl_t P3 Q2
  H47 : bisim_up_to refl_t P6 P4
  H48 : bisim_up_to refl_t Q2 P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 4.2.2.1:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 P4
  H46 : bisim_up_to refl_t P3 Q2
  H47 : bisim_up_to refl_t P6 P4
  H48 : bisim_up_to refl_t Q2 P3
  H49 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 4.2.2.2 is:
 bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H44 : bisim_t Q4 (par P4 R1) P3 (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 (par P4 R1)
  H46 : bisim_up_to refl_t P3 (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 (par P4 R1)
  H46 : bisim_up_to refl_t P3 (par Q2 R1)
  H47 : bisim_up_to refl_t P6 (par P4 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 (par P4 R1)
  H46 : bisim_up_to refl_t P3 (par Q2 R1)
  H47 : bisim_up_to refl_t P6 (par P4 R1)
  H48 : bisim_up_to refl_t (par Q2 R1) P3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 (par P4 R1)
  H46 : bisim_up_to refl_t P3 (par Q2 R1)
  H47 : bisim_up_to refl_t P6 (par P4 R1)
  H48 : bisim_up_to refl_t (par Q2 R1) P3
  H49 : bisim_up_to refl_t (par Q2 R1) Q3
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1.
Subgoal 4.2.2.2:

  Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : one Q A Q3
  H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : one S A P3
  H24 : bisim_up_to refl_t P3 Q3
  H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : one R A Q4
  H33 : bisim_up_to bisim_context_t P4 Q2
  H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
          refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : one P A P6
  H42 : bisim_up_to refl_t P6 Q4
  H45 : bisim_up_to refl_t Q4 (par P4 R1)
  H46 : bisim_up_to refl_t P3 (par Q2 R1)
  H47 : bisim_up_to refl_t P6 (par P4 R1)
  H48 : bisim_up_to refl_t (par Q2 R1) P3
  H49 : bisim_up_to refl_t (par Q2 R1) Q3
  H50 : bisim_up_to bisim_context_t (par P4 R1) (par Q2 R1)
  ============================
   bisim_up_to refl_t P6 Q3 +

Subgoal 5 is:
 forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 5:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb Q (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 5:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H20 to H15.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H28 to H22.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H36 to H30.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 5:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4 /\ (exists M2 N2, forall W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 5.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   oneb P (dn X) M4

Subgoal 5.2 is:
 exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < exists N.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 5.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < split.
Subgoal 5.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   refl_t (M4 W) (M4 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < search.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H23 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H31 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H39 with W = W.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H40 : refl_t (M W) (M2 W) (N W) (N2 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H44 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H40.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H44 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H50 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H50.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H51 to H41 H47 H46.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H51 to H45 H49 H48.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H42.
Subgoal 5.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H54 : bisim_t (M1 W) (M3 W) (M W) (N1 W) \/ (exists P2 Q2,
          bisim_t (M1 W) P2 (M W) Q2 /\ (exists R, P2 = par (M3 W) R /\
          Q2 = par (N1 W) R))
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H54.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H55 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H55.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (M3 W)
  H57 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H53 H56.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (M3 W)
  H57 : bisim_up_to refl_t (M W) (N1 W)
  H58 : bisim_up_to refl_t (M4 W) (M3 W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (M3 W)
  H57 : bisim_up_to refl_t (M W) (N1 W)
  H58 : bisim_up_to refl_t (M4 W) (M3 W)
  H59 : bisim_up_to refl_t (N1 W) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H59 H52.
Subgoal 5.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (M3 W)
  H57 : bisim_up_to refl_t (M W) (N1 W)
  H58 : bisim_up_to refl_t (M4 W) (M3 W)
  H59 : bisim_up_to refl_t (N1 W) (M W)
  H60 : bisim_up_to refl_t (N1 W) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 5.2.2.2 is:
 bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H55 : bisim_t (M1 W) (par (M3 W) R1) (M W) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < case H55.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H53 H56.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H11 to H59 H52.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  H60 : bisim_up_to refl_t (par (N1 W) R1) (N W)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < apply H5 to H43 with R = R1.
Subgoal 5.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
             R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (dn X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (dn X) M
  H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : oneb R (dn X) M1
  H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_context_t (M3 W) (N1 W)
  H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H38 : oneb P (dn X) M4
  H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
          bisim_up_to refl_t (M5 W) (N3 W)
  H41 : bisim_up_to refl_t (M2 W) (N2 W)
  H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
  H45 : bisim_up_to refl_t (M5 W) (N3 W)
  H46 : N W = N2 W
  H47 : M W = M2 W
  H48 : M1 W = N3 W
  H49 : M4 W = M5 W
  H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H52 : bisim_up_to refl_t (M W) (N W)
  H53 : bisim_up_to refl_t (M4 W) (M1 W)
  H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
  H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
  H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
  H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
  H60 : bisim_up_to refl_t (par (N1 W) R1) (N W)
  H61 : bisim_up_to bisim_context_t (par (M3 W) R1) (par (N1 W) R1)
  ============================
   bisim_up_to refl_t (M4 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 6:

  Variables: P, Q, R, S
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  ============================
   forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +))

bisimBK_and_subst_soundness_fst < intros.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H14 : bisim_up_to refl_t S Q
  H15 : oneb Q (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < case H14.
Subgoal 6:

  Variables: P, Q, R, S, X, N
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < apply H21 to H15.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H13 : bisim_up_to bisim_context_t R S
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < case H13.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < apply H30 to H22.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H12 : bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < case H12.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < apply H39 to H31.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 6:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4 /\ (exists M2 N2, nabla W,
     refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)

bisimBK_and_subst_soundness_fst < split.
Subgoal 6.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   oneb P (up X) M4

Subgoal 6.2 is:
 exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to refl_t (M2 W) (N2 W) +

bisimBK_and_subst_soundness_fst < search.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M2 W) (N2 W) +

bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
     bisim_up_to refl_t (M4 W) (N2 W) +

bisimBK_and_subst_soundness_fst < exists N.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
     bisim_up_to refl_t (M4 W) (N W) +

bisimBK_and_subst_soundness_fst < intros.
Subgoal 6.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
     bisim_up_to refl_t (M4 n1) (N n1) +

bisimBK_and_subst_soundness_fst < split.
Subgoal 6.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   refl_t (M4 n1) (M4 n1) (N n1) (N n1)

Subgoal 6.2.2 is:
 bisim_up_to refl_t (M4 n1) (N n1) +

bisimBK_and_subst_soundness_fst < search.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) N
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) M
  H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N n1) +

bisimBK_and_subst_soundness_fst < case H23.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) M1
  H32 : bisim_context_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) M4
  H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M4 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < case H41.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H32 : bisim_context_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < case H32.
Subgoal 6.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H43 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1) \/ (exists P2 Q2,
          bisim_t (N3 n1) P2 (M2 n1) Q2 /\ (exists R, P2 = par (M3 n1) R /\
          Q2 = par (N1 n1) R))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < case H43.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H44 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H48 : bisim_up_to refl_t (N1 n1) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 6.2.2.1:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
  H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
  H48 : bisim_up_to refl_t (N1 n1) (M2 n1)
  H49 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

Subgoal 6.2.2.2 is:
 bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H44 : bisim_t (N3 n1) (par (M3 n1) (R1 n1)) (M2 n1) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < case H44.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  H49 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1 n1.
Subgoal 6.2.2.2:

  Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
  CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
         bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
         bisim_up_to refl_t P Q +
  H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
         bisim_up_to bisim_context_t (par P R) (par Q R)
  H8 : subst_rel (bisim_up_to refl_t)
  H9 : forall P, bisim_up_to refl_t P P
  H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
          bisim_up_to refl_t P R
  H15 : oneb Q (up X) (z1\N2 z1)
  H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H22 : oneb S (up X) (z1\M2 z1)
  H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
          bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
  H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
          (exists M2 N2, forall W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
          (exists M2 N2, nabla W,
          bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_context_t (M2 W) (N2 W)))
  H31 : oneb R (up X) (z1\N3 z1)
  H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
  H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
  H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H40 : oneb P (up X) (z1\M5 z1)
  H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
  H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
  H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
  H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
  H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
  H49 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
  H50 : bisim_up_to bisim_context_t (par (M3 n1) (R1 n1)) (par (N1 n1) (R1 n1))
  ============================
   bisim_up_to refl_t (M5 n1) (N2 n1) +

bisimBK_and_subst_soundness_fst < backchain CH.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness_snd : 
bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t.


  ============================
   bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t

bisimBK_and_subst_soundness_snd < intros.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   is_sound_snd bisim_context_t

bisimBK_and_subst_soundness_snd < unfold.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
     bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q)

bisimBK_and_subst_soundness_snd < intros.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < case H2.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H4 : cong_rel (bisim_up_to refl_t)
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < case H4.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H5 : equiv_rel (bisim_up_to refl_t)
  H6 : subst_rel (bisim_up_to refl_t)
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < case H5.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < apply H7 with P = P.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t P P
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < apply H7 with P = Q.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t P P
  H11 : bisim_up_to refl_t Q Q
  ============================
   exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < exists P.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t P P
  H11 : bisim_up_to refl_t Q Q
  ============================
   exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P S /\
     bisim_up_to refl_t S Q

bisimBK_and_subst_soundness_snd < exists Q.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H3 : bisim_up_to bisim_context_t P Q
  H6 : subst_rel (bisim_up_to refl_t)
  H7 : forall P, bisim_up_to refl_t P P
  H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
  H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
         bisim_up_to refl_t P R
  H10 : bisim_up_to refl_t P P
  H11 : bisim_up_to refl_t Q Q
  ============================
   bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P Q /\
     bisim_up_to refl_t Q Q

bisimBK_and_subst_soundness_snd < search.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness : 
bisimBK_is_subst -> bisim_is_cong -> is_sound bisim_context_t.


  ============================
   bisimBK_is_subst -> bisim_is_cong -> is_sound bisim_context_t

bisimBK_and_subst_soundness < intros.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   is_sound bisim_context_t

bisimBK_and_subst_soundness < unfold.


  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  ============================
   forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < intros.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < apply bisimBK_and_subst_soundness_snd.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < apply H4 to H1 H2.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H5 : is_sound_snd bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < case H5.

  Variables: P, Q
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < apply H6 to H3.

  Variables: P, Q, R, S
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H7 : bisim_up_to refl_t P R
  H8 : bisim_up_to bisim_context_t R S
  H9 : bisim_up_to refl_t S Q
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < apply bisimBK_and_subst_soundness_fst.

  Variables: P, Q, R, S
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H7 : bisim_up_to refl_t P R
  H8 : bisim_up_to bisim_context_t R S
  H9 : bisim_up_to refl_t S Q
  H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < apply H10 to H1 H2.

  Variables: P, Q, R, S
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H7 : bisim_up_to refl_t P R
  H8 : bisim_up_to bisim_context_t R S
  H9 : bisim_up_to refl_t S Q
  H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
  H11 : is_sound_fst bisim_context_t
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < case H11.

  Variables: P, Q, R, S
  H1 : bisimBK_is_subst
  H2 : bisim_is_cong
  H3 : bisim_up_to bisim_context_t P Q
  H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
  H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
         bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
         bisim_up_to refl_t S Q)
  H7 : bisim_up_to refl_t P R
  H8 : bisim_up_to bisim_context_t R S
  H9 : bisim_up_to refl_t S Q
  H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
  H12 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
          bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
          bisim_up_to refl_t P Q
  ============================
   bisim_up_to refl_t P Q

bisimBK_and_subst_soundness < backchain H12.
Proof completed.
Abella < Theorem subst_in_bisimB : 
forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
  bisim_up_to bisim_t P Q2.


  ============================
   forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
     bisim_up_to bisim_t P Q2

subst_in_bisimB < coinduction.


  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  ============================
   forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
     bisim_up_to bisim_t P Q2 #

subst_in_bisimB < intros.

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   bisim_up_to bisim_t P Q2 #

subst_in_bisimB < unfold.
Subgoal 1:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall A P1, one P A P1 -> (exists Q1, one Q2 A Q1 /\ (exists P2 Q3,
     bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : one P A P1
  ============================
   exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H1.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H4 to H3.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  ============================
   exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H2.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H13 to H10.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q5
  H20 : refl_t Q3 P2 Q5 Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists Q5.
Subgoal 1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q5
  H20 : refl_t Q3 P2 Q5 Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   one Q2 A Q5 /\ (exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 1.1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q5
  H20 : refl_t Q3 P2 Q5 Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   one Q2 A Q5

Subgoal 1.2 is:
 exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\ bisim_up_to bisim_t P2 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A Q3
  H11 : bisim_t P1 P3 Q3 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q5
  H20 : refl_t Q3 P2 Q5 Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\ bisim_up_to bisim_t P2 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H20.
Subgoal 1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : bisim_t P1 P3 P2 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   exists P2 Q3, bisim_t P1 P2 Q6 Q3 /\ bisim_up_to bisim_t P2 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists P3.
Subgoal 1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : bisim_t P1 P3 P2 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   exists Q3, bisim_t P1 P3 Q6 Q3 /\ bisim_up_to bisim_t P3 Q3 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists Q6.
Subgoal 1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : bisim_t P1 P3 P2 Q4
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  ============================
   bisim_t P1 P3 Q6 Q6 /\ bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H11.
Subgoal 1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_t P1 P3 Q6 Q6 /\ bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 1.2.1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_t P1 P3 Q6 Q6

Subgoal 1.2.2 is:
 bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < unfold.
Subgoal 1.2.1.1:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_up_to refl_t P1 P3

Subgoal 1.2.1.2 is:
 bisim_up_to refl_t Q6 Q6

Subgoal 1.2.2 is:
 bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 1.2.1.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_up_to refl_t Q6 Q6

Subgoal 1.2.2 is:
 bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain bisim_refl.
Subgoal 1.2.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  ============================
   bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_sym to H23.
Subgoal 1.2.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  H24 : bisim_up_to refl_t Q4 P2
  ============================
   bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_trans to H24 H21.
Subgoal 1.2.2:

  Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H12 : bisim_up_to bisim_t P3 Q4
  H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
          refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : one Q2 A Q6
  H21 : bisim_up_to refl_t P2 Q6
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t P2 Q4
  H24 : bisim_up_to refl_t Q4 P2
  H25 : bisim_up_to refl_t Q4 Q6
  ============================
   bisim_up_to bisim_t P3 Q6 +

Subgoal 2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain CH.
Subgoal 2:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 2:

  Variables: P, Q1, Q2, X, M
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H1.
Subgoal 2:

  Variables: P, Q1, Q2, X, M
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H5 to H3.
Subgoal 2:

  Variables: P, Q1, Q2, X, M, N, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H2.
Subgoal 2:

  Variables: P, Q1, Q2, X, M, N, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H13 to H10.
Subgoal 2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists N1.
Subgoal 2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   oneb Q2 (dn X) N1 /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 2.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   oneb Q2 (dn X) N1

Subgoal 2.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists M2.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   exists N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists N1.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   forall W, bisim_t (M W) (M2 W) (N1 W) (N1 W) /\
     bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H11 with W = W.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H19 with W = W.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H22.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H20.
Subgoal 2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 2.2.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N1 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < unfold.
Subgoal 2.2.1.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (M2 W)

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (N1 W) (N1 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 2.2.1.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_up_to refl_t (N1 W) (N1 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain bisim_refl.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply equality_for_structured_refl.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  H28 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H28.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H29 to H23 H25 H24.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (N W) (N1 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_sym to H27.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (N W) (N1 W)
  H31 : bisim_up_to refl_t (N2 W) (N W)
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_trans to H31 H30.
Subgoal 2.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : oneb Q2 (dn X) N1
  H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to refl_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to refl_t (M1 W) (N3 W)
  H24 : N1 W = N3 W
  H25 : N W = M1 W
  H26 : bisim_up_to refl_t (M W) (M2 W)
  H27 : bisim_up_to refl_t (N W) (N2 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (N W) (N1 W)
  H31 : bisim_up_to refl_t (N2 W) (N W)
  H32 : bisim_up_to refl_t (N2 W) (N1 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N1 W) +

Subgoal 3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain CH.
Subgoal 3:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 3:

  Variables: P, Q1, Q2, X, M
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (up X) M
  ============================
   exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H1.
Subgoal 3:

  Variables: P, Q1, Q2, X, M
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H6 to H3.
Subgoal 3:

  Variables: P, Q1, Q2, X, M, N, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H2.
Subgoal 3:

  Variables: P, Q1, Q2, X, M, N, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H15 to H10.
Subgoal 3:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists N1.
Subgoal 3:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   oneb Q2 (up X) N1 /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 3.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   oneb Q2 (up X) N1

Subgoal 3.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) N1
  H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H20.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H11 : bisim_t (M n1) (M2 n1) (M1 n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H11.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists M2.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   exists N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists N3.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   nabla W, bisim_t (M W) (M2 W) (N3 W) (N3 W) /\
     bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 3.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N3 n1) (N3 n1) /\
     bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 3.2.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N3 n1) (N3 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < unfold.
Subgoal 3.2.1.1:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (M2 n1)

Subgoal 3.2.1.2 is:
 bisim_up_to refl_t (N3 n1) (N3 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 3.2.1.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N3 n1) (N3 n1)

Subgoal 3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain bisim_refl.
Subgoal 3.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_sym to H23.
Subgoal 3.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  H24 : bisim_up_to refl_t (N2 n1) (M1 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_trans to H24 H21.
Subgoal 3.2.2:

  Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M1 z1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
          refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
          (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
          (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)))
  H19 : oneb Q2 (up X) (z1\N3 z1)
  H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
  H24 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H25 : bisim_up_to refl_t (N2 n1) (N3 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 4 is:
 forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
   bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain CH.
Subgoal 4:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
     bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : one Q2 A Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H2.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H7 to H3.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  ============================
   exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H1.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H16 to H10.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists P1.
Subgoal 4:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 4.1:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   one P A P1

Subgoal 4.2 is:
 exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\ bisim_up_to bisim_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 4.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q3
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P2
  H11 : refl_t P2 P3 Q3 Q4
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\ bisim_up_to bisim_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H11.
Subgoal 4.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P3 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   exists P2 Q1, bisim_t P1 P2 Q4 Q1 /\ bisim_up_to bisim_t P2 Q1 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists P4.
Subgoal 4.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P3 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   exists Q1, bisim_t P1 P4 Q4 Q1 /\ bisim_up_to bisim_t P4 Q1 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists Q4.
Subgoal 4.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P3 Q5
  H21 : bisim_up_to bisim_t P4 Q5
  ============================
   bisim_t P1 P4 Q4 Q4 /\ bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H20.
Subgoal 4.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  ============================
   bisim_t P1 P4 Q4 Q4 /\ bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 4.2.1:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  ============================
   bisim_t P1 P4 Q4 Q4

Subgoal 4.2.2 is:
 bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < unfold.
Subgoal 4.2.1.1:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  ============================
   bisim_up_to refl_t P1 P4

Subgoal 4.2.1.2 is:
 bisim_up_to refl_t Q4 Q4

Subgoal 4.2.2 is:
 bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 4.2.1.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  ============================
   bisim_up_to refl_t Q4 Q4

Subgoal 4.2.2 is:
 bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain bisim_refl.
Subgoal 4.2.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  ============================
   bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_sym to H23.
Subgoal 4.2.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  H24 : bisim_up_to refl_t Q5 P3
  ============================
   bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_trans to H24 H12.
Subgoal 4.2.2:

  Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : one Q2 A Q4
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : one Q1 A P3
  H12 : bisim_up_to refl_t P3 Q4
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q5
  H22 : bisim_up_to refl_t P1 P4
  H23 : bisim_up_to refl_t P3 Q5
  H24 : bisim_up_to refl_t Q5 P3
  H25 : bisim_up_to refl_t Q5 Q4
  ============================
   bisim_up_to bisim_t P4 Q4 +

Subgoal 5 is:
 forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain CH.
Subgoal 5:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 5:

  Variables: P, Q1, Q2, X, N
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb Q2 (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H2.
Subgoal 5:

  Variables: P, Q1, Q2, X, N
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H8 to H3.
Subgoal 5:

  Variables: P, Q1, Q2, X, N, M, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H1.
Subgoal 5:

  Variables: P, Q1, Q2, X, N, M, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H16 to H10.
Subgoal 5:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists M1.
Subgoal 5:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1 /\ (exists M2 N2, forall W,
     bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 5.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1

Subgoal 5.2 is:
 exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists M3.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists N2, forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < exists N.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   forall W, bisim_t (M1 W) (M3 W) (N W) (N W) /\
     bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H11 with W = W.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H19 with W = W.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H20 : refl_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H20.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H22.
Subgoal 5.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < split.
Subgoal 5.2.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < unfold.
Subgoal 5.2.1.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M1 W) (M3 W)

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < search.
Subgoal 5.2.1.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (N W) (N W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain bisim_refl.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply equality_for_structured_refl.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H28 : equally_structured (bisim_up_to refl_t)
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < case H28.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply H29 to H21 H25 H24.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_sym to H27.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  H31 : bisim_up_to refl_t (N1 W) (M W)
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < apply bisim_trans to H31 H30.
Subgoal 5.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (dn X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (dn X) M
  H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to refl_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to refl_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : N W = N2 W
  H25 : M W = M2 W
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
          bisim_up_to refl_t Y1 Y2
  H30 : bisim_up_to refl_t (M W) (N W)
  H31 : bisim_up_to refl_t (N1 W) (M W)
  H32 : bisim_up_to refl_t (N1 W) (N W)
  ============================
   bisim_up_to bisim_t (M3 W) (N W) +

Subgoal 6 is:
 forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < backchain CH.
Subgoal 6:

  Variables: P, Q1, Q2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  ============================
   forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

subst_in_bisimB < intros.
Subgoal 6:

  Variables: P, Q1, Q2, X, N
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H2 : bisim_up_to refl_t Q1 Q2
  H3 : oneb Q2 (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < case H2.
Subgoal 6:

  Variables: P, Q1, Q2, X, N
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < apply H9 to H3.
Subgoal 6:

  Variables: P, Q1, Q2, X, N, M, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H1 : bisim_up_to bisim_t P Q1
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < case H1.
Subgoal 6:

  Variables: P, Q1, Q2, X, N, M, M2, N2
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < apply H18 to H10.
Subgoal 6:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < exists M1.
Subgoal 6:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1 /\ (exists M2 N2, nabla W,
     bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

subst_in_bisimB < split.
Subgoal 6.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1

Subgoal 6.2 is:
 exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

subst_in_bisimB < search.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

subst_in_bisimB < exists M3.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists N2, nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

subst_in_bisimB < exists N.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   nabla W, bisim_t (M1 W) (M3 W) (N W) (N W) /\
     bisim_up_to bisim_t (M3 W) (N W) +

subst_in_bisimB < intros.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) N
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) M
  H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N n1) (N n1) /\
     bisim_up_to bisim_t (M3 n1) (N n1) +

subst_in_bisimB < case H11.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1) /\
     bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < case H20.
Subgoal 6.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1) /\
     bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < split.
Subgoal 6.2.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < unfold.
Subgoal 6.2.1.1:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M1 n1) (M3 n1)

Subgoal 6.2.1.2 is:
 bisim_up_to refl_t (N2 n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < search.
Subgoal 6.2.1.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to refl_t (N2 n1) (N2 n1)

Subgoal 6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < backchain bisim_refl.
Subgoal 6.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < apply bisim_sym to H23.
Subgoal 6.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H24 : bisim_up_to refl_t (N1 n1) (M2 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < apply bisim_trans to H24 H12.
Subgoal 6.2.2:

  Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
         bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
  H3 : oneb Q2 (up X) (z1\N2 z1)
  H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
         refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
  H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
         (exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
         (exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to refl_t (M2 W) (N2 W)))
  H10 : oneb Q1 (up X) (z1\M2 z1)
  H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
  H24 : bisim_up_to refl_t (N1 n1) (M2 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

subst_in_bisimB < backchain CH.
Proof completed.
Abella < Theorem bisimB_is_equiv_th : 
equiv_rel (bisim_up_to bisim_t).


  ============================
   equiv_rel (bisim_up_to bisim_t)

bisimB_is_equiv_th < unfold.
Subgoal 1:


  ============================
   forall P, bisim_up_to bisim_t P P

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < coinduction.
Subgoal 1:


  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall P, bisim_up_to bisim_t P P #

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   bisim_up_to bisim_t P P #

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.1:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall A P1, one P A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P1.
Subgoal 1.1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 P1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.1.1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   one P A P1

Subgoal 1.1.2 is:
 exists P2 Q2, bisim_t P1 P2 P1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.1.2:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   exists P2 Q2, bisim_t P1 P2 P1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P1.
Subgoal 1.1.2:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   exists Q2, bisim_t P1 P1 P1 Q2 /\ bisim_up_to bisim_t P1 Q2 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P1.
Subgoal 1.1.2:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   bisim_t P1 P1 P1 P1 /\ bisim_up_to bisim_t P1 P1 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.1.2.1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   bisim_t P1 P1 P1 P1

Subgoal 1.1.2.2 is:
 bisim_up_to bisim_t P1 P1 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.1.2.1.1:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   bisim_up_to refl_t P1 P1

Subgoal 1.1.2.1.2 is:
 bisim_up_to refl_t P1 P1

Subgoal 1.1.2.2 is:
 bisim_up_to bisim_t P1 P1 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.1.2.1.2:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   bisim_up_to refl_t P1 P1

Subgoal 1.1.2.2 is:
 bisim_up_to bisim_t P1 P1 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.1.2.2:

  Variables: P, A, P1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A P1
  ============================
   bisim_up_to bisim_t P1 P1 +

Subgoal 1.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 1.2:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.2.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   oneb P (dn X) M

Subgoal 1.2.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   exists N2, forall W, bisim_t (M W) (M W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M W) (N2 W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   forall W, bisim_t (M W) (M W) (M W) (M W) /\
     bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.2.2:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   bisim_t (M W) (M W) (M W) (M W) /\ bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.2.2.1:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   bisim_t (M W) (M W) (M W) (M W)

Subgoal 1.2.2.2 is:
 bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.2.2.1.1:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   bisim_up_to refl_t (M W) (M W)

Subgoal 1.2.2.1.2 is:
 bisim_up_to refl_t (M W) (M W)

Subgoal 1.2.2.2 is:
 bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.2.2.1.2:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   bisim_up_to refl_t (M W) (M W)

Subgoal 1.2.2.2 is:
 bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.2.2.2:

  Variables: P, X, M, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) M
  ============================
   bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 1.3:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.3:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.3:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.3.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   oneb P (up X) M

Subgoal 1.3.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   exists N2, nabla W, bisim_t (M W) (M W) (M W) (N2 W) /\
     bisim_up_to bisim_t (M W) (N2 W) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M.
Subgoal 1.3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   nabla W, bisim_t (M W) (M W) (M W) (M W) /\
     bisim_up_to bisim_t (M W) (M W) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.3.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   bisim_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to bisim_t (M n1) (M n1) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.3.2.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   bisim_t (M n1) (M n1) (M n1) (M n1)

Subgoal 1.3.2.2 is:
 bisim_up_to bisim_t (M n1) (M n1) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.3.2.1.1:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   bisim_up_to refl_t (M n1) (M n1)

Subgoal 1.3.2.1.2 is:
 bisim_up_to refl_t (M n1) (M n1)

Subgoal 1.3.2.2 is:
 bisim_up_to bisim_t (M n1) (M n1) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.3.2.1.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   bisim_up_to refl_t (M n1) (M n1)

Subgoal 1.3.2.2 is:
 bisim_up_to bisim_t (M n1) (M n1) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.3.2.2:

  Variables: P, X, M
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) M
  ============================
   bisim_up_to bisim_t (M n1) (M n1) +

Subgoal 1.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 1.4:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.4:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q1.
Subgoal 1.4:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   one P A Q1 /\ (exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.4.1:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   one P A Q1

Subgoal 1.4.2 is:
 exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.4.2:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q1.
Subgoal 1.4.2:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   exists Q2, bisim_t Q1 Q1 Q1 Q2 /\ bisim_up_to bisim_t Q1 Q2 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q1.
Subgoal 1.4.2:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   bisim_t Q1 Q1 Q1 Q1 /\ bisim_up_to bisim_t Q1 Q1 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.4.2.1:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   bisim_t Q1 Q1 Q1 Q1

Subgoal 1.4.2.2 is:
 bisim_up_to bisim_t Q1 Q1 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.4.2.1.1:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   bisim_up_to refl_t Q1 Q1

Subgoal 1.4.2.1.2 is:
 bisim_up_to refl_t Q1 Q1

Subgoal 1.4.2.2 is:
 bisim_up_to bisim_t Q1 Q1 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.4.2.1.2:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   bisim_up_to refl_t Q1 Q1

Subgoal 1.4.2.2 is:
 bisim_up_to bisim_t Q1 Q1 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.4.2.2:

  Variables: P, A, Q1
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : one P A Q1
  ============================
   bisim_up_to bisim_t Q1 Q1 +

Subgoal 1.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 1.5:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.5:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.5:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   oneb P (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.5.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   oneb P (dn X) N

Subgoal 1.5.2 is:
 exists M2 N2, forall W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists M2 N2, forall W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   exists N2, forall W, bisim_t (N W) (N W) (N W) (N2 W) /\
     bisim_up_to bisim_t (N W) (N2 W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.5.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   forall W, bisim_t (N W) (N W) (N W) (N W) /\
     bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.5.2:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   bisim_t (N W) (N W) (N W) (N W) /\ bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.5.2.1:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   bisim_t (N W) (N W) (N W) (N W)

Subgoal 1.5.2.2 is:
 bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.5.2.1.1:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   bisim_up_to refl_t (N W) (N W)

Subgoal 1.5.2.1.2 is:
 bisim_up_to refl_t (N W) (N W)

Subgoal 1.5.2.2 is:
 bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.5.2.1.2:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   bisim_up_to refl_t (N W) (N W)

Subgoal 1.5.2.2 is:
 bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.5.2.2:

  Variables: P, X, N, W
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (dn X) N
  ============================
   bisim_up_to bisim_t (N W) (N W) +

Subgoal 1.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 1.6:

  Variables: P
  CH : forall P, bisim_up_to bisim_t P P +
  ============================
   forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.6:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.6:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   oneb P (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.6.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   oneb P (up X) N

Subgoal 1.6.2 is:
 exists M2 N2, nabla W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 1.6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   exists M2 N2, nabla W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   exists N2, nabla W, bisim_t (N W) (N W) (N W) (N2 W) /\
     bisim_up_to bisim_t (N W) (N2 W) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N.
Subgoal 1.6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   nabla W, bisim_t (N W) (N W) (N W) (N W) /\
     bisim_up_to bisim_t (N W) (N W) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 1.6.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   bisim_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to bisim_t (N n1) (N n1) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 1.6.2.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   bisim_t (N n1) (N n1) (N n1) (N n1)

Subgoal 1.6.2.2 is:
 bisim_up_to bisim_t (N n1) (N n1) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 1.6.2.1.1:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   bisim_up_to refl_t (N n1) (N n1)

Subgoal 1.6.2.1.2 is:
 bisim_up_to refl_t (N n1) (N n1)

Subgoal 1.6.2.2 is:
 bisim_up_to bisim_t (N n1) (N n1) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.6.2.1.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   bisim_up_to refl_t (N n1) (N n1)

Subgoal 1.6.2.2 is:
 bisim_up_to bisim_t (N n1) (N n1) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.6.2.2:

  Variables: P, X, N
  CH : forall P, bisim_up_to bisim_t P P +
  H1 : oneb P (up X) N
  ============================
   bisim_up_to bisim_t (N n1) (N n1) +

Subgoal 2 is:
 forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2:


  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < coinduction.
Subgoal 2:


  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  ============================
   forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P #

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   bisim_up_to bisim_t Q P #

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.1:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall A P1, one Q A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.1:

  Variables: P, Q, A, P1
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : one Q A P1
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.1:

  Variables: P, Q, A, P1
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H6 to H2.
Subgoal 2.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P2.
Subgoal 2.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2 /\ (exists P3 Q2, bisim_t P1 P3 P2 Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.1.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   one P A P2

Subgoal 2.1.2 is:
 exists P3 Q2, bisim_t P1 P3 P2 Q2 /\ bisim_up_to bisim_t P3 Q2 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P3 Q2, bisim_t P1 P3 P2 Q2 /\ bisim_up_to bisim_t P3 Q2 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q3.
Subgoal 2.1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q2, bisim_t P1 Q3 P2 Q2 /\ bisim_up_to bisim_t Q3 Q2 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P3.
Subgoal 2.1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_t P1 Q3 P2 P3 /\ bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.1.2.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_t P1 Q3 P2 P3

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H10.
Subgoal 2.1.2.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t P2 P3
  H13 : bisim_up_to refl_t P1 Q3
  ============================
   bisim_t P1 Q3 P2 P3

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.1.2.1.1:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t P2 P3
  H13 : bisim_up_to refl_t P1 Q3
  ============================
   bisim_up_to refl_t P1 Q3

Subgoal 2.1.2.1.2 is:
 bisim_up_to refl_t P2 P3

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.1.2.1.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t P2 P3
  H13 : bisim_up_to refl_t P1 Q3
  ============================
   bisim_up_to refl_t P2 P3

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.1.2.2:

  Variables: P, Q, A, P1, P2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one Q A P1
  H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one P A P2
  H10 : bisim_t P2 P3 P1 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to bisim_t Q3 P3 +

Subgoal 2.2 is:
 forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2.2:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.2:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : oneb Q (dn X) M
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.2:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H7 to H2.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M1.
Subgoal 2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M1 /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.2.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb P (dn X) M1

Subgoal 2.2.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N2.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N1, forall W, bisim_t (M W) (N2 W) (M1 W) (N1 W) /\
     bisim_up_to bisim_t (N2 W) (N1 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M2.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, bisim_t (M W) (N2 W) (M1 W) (M2 W) /\
     bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H10 with W = W.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H11 : bisim_t (M1 W) (M2 W) (M W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H11.
Subgoal 2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (M1 W) (M2 W)
  H14 : bisim_up_to refl_t (M W) (N2 W)
  ============================
   bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.2.2.1:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (M1 W) (M2 W)
  H14 : bisim_up_to refl_t (M W) (N2 W)
  ============================
   bisim_t (M W) (N2 W) (M1 W) (M2 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.2.2.1.1:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (M1 W) (M2 W)
  H14 : bisim_up_to refl_t (M W) (N2 W)
  ============================
   bisim_up_to refl_t (M W) (N2 W)

Subgoal 2.2.2.1.2 is:
 bisim_up_to refl_t (M1 W) (M2 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.2.2.1.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (M1 W) (M2 W)
  H14 : bisim_up_to refl_t (M W) (N2 W)
  ============================
   bisim_up_to refl_t (M1 W) (M2 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.2.2.2:

  Variables: P, Q, X, M, M1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (dn X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (dn X) M1
  H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (M1 W) (M2 W)
  H14 : bisim_up_to refl_t (M W) (N2 W)
  ============================
   bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.3 is:
 forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2.3:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.3:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : oneb Q (up X) M
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.3:

  Variables: P, Q, X, M
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H8 to H2.
Subgoal 2.3:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M1.
Subgoal 2.3:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M1 /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.3.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb P (up X) M1

Subgoal 2.3.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N2.
Subgoal 2.3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N1, nabla W, bisim_t (M W) (N2 W) (M1 W) (N1 W) /\
     bisim_up_to bisim_t (N2 W) (N1 W) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M2.
Subgoal 2.3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_t (M W) (N2 W) (M1 W) (M2 W) /\
     bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1) /\
     bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H10.
Subgoal 2.3.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
  H13 : bisim_up_to refl_t (M n1) (N2 n1)
  ============================
   bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1) /\
     bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.3.2.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
  H13 : bisim_up_to refl_t (M n1) (N2 n1)
  ============================
   bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1)

Subgoal 2.3.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.3.2.1.1:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
  H13 : bisim_up_to refl_t (M n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M n1) (N2 n1)

Subgoal 2.3.2.1.2 is:
 bisim_up_to refl_t (M1 n1) (M2 n1)

Subgoal 2.3.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.3.2.1.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
  H13 : bisim_up_to refl_t (M n1) (N2 n1)
  ============================
   bisim_up_to refl_t (M1 n1) (M2 n1)

Subgoal 2.3.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.3.2.2:

  Variables: P, Q, X, M, M1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb Q (up X) M
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb P (up X) M1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
  H13 : bisim_up_to refl_t (M n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 2.4 is:
 forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2.4:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.4:

  Variables: P, Q, A, Q1
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : one P A Q1
  ============================
   exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.4:

  Variables: P, Q, A, Q1
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H3 to H2.
Subgoal 2.4:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q2.
Subgoal 2.4:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2 /\ (exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\
     bisim_up_to bisim_t P2 Q3 +)

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.4.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   one Q A Q2

Subgoal 2.4.2 is:
 exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists Q3.
Subgoal 2.4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q4, bisim_t Q2 Q3 Q1 Q4 /\ bisim_up_to bisim_t Q3 Q4 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists P3.
Subgoal 2.4.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_t Q2 Q3 Q1 P3 /\ bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.4.2.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_t Q2 Q3 Q1 P3

Subgoal 2.4.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H10.
Subgoal 2.4.2.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t Q1 P3
  H13 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_t Q2 Q3 Q1 P3

Subgoal 2.4.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.4.2.1.1:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t Q1 P3
  H13 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t Q2 Q3

Subgoal 2.4.2.1.2 is:
 bisim_up_to refl_t Q1 P3

Subgoal 2.4.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.4.2.1.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H11 : bisim_up_to bisim_t P3 Q3
  H12 : bisim_up_to refl_t Q1 P3
  H13 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_up_to refl_t Q1 P3

Subgoal 2.4.2.2 is:
 bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.4.2.2:

  Variables: P, Q, A, Q1, Q2, P3, Q3
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : one P A Q1
  H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : one Q A Q2
  H10 : bisim_t Q1 P3 Q2 Q3
  H11 : bisim_up_to bisim_t P3 Q3
  ============================
   bisim_up_to bisim_t Q3 P3 +

Subgoal 2.5 is:
 forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2.5:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.5:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : oneb P (dn X) N
  ============================
   exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.5:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H4 to H2.
Subgoal 2.5:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N1.
Subgoal 2.5:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N1 /\ (exists M2 N2, forall W,
     bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.5.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   oneb Q (dn X) N1

Subgoal 2.5.2 is:
 exists M2 N2, forall W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M2 N2, forall W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N2.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N3, forall W, bisim_t (N1 W) (N2 W) (N W) (N3 W) /\
     bisim_up_to bisim_t (N2 W) (N3 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M2.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   forall W, bisim_t (N1 W) (N2 W) (N W) (M2 W) /\
     bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H10 with W = W.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H11 : bisim_t (N W) (M2 W) (N1 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H11.
Subgoal 2.5.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (N W) (M2 W)
  H14 : bisim_up_to refl_t (N1 W) (N2 W)
  ============================
   bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.5.2.1:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (N W) (M2 W)
  H14 : bisim_up_to refl_t (N1 W) (N2 W)
  ============================
   bisim_t (N1 W) (N2 W) (N W) (M2 W)

Subgoal 2.5.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.5.2.1.1:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (N W) (M2 W)
  H14 : bisim_up_to refl_t (N1 W) (N2 W)
  ============================
   bisim_up_to refl_t (N1 W) (N2 W)

Subgoal 2.5.2.1.2 is:
 bisim_up_to refl_t (N W) (M2 W)

Subgoal 2.5.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.5.2.1.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (N W) (M2 W)
  H14 : bisim_up_to refl_t (N1 W) (N2 W)
  ============================
   bisim_up_to refl_t (N W) (M2 W)

Subgoal 2.5.2.2 is:
 bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.5.2.2:

  Variables: P, Q, X, N, N1, M2, N2, W
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (dn X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (dn X) N1
  H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : bisim_up_to bisim_t (M2 W) (N2 W)
  H13 : bisim_up_to refl_t (N W) (M2 W)
  H14 : bisim_up_to refl_t (N1 W) (N2 W)
  ============================
   bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 2.6 is:
 forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 2.6:

  Variables: P, Q
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  ============================
   forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.6:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H1 : bisim_up_to bisim_t P Q
  H2 : oneb P (up X) N
  ============================
   exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H1.
Subgoal 2.6:

  Variables: P, Q, X, N
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < apply H5 to H2.
Subgoal 2.6:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N1.
Subgoal 2.6:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N1 /\ (exists M2 N2, nabla W,
     bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.6.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   oneb Q (up X) N1

Subgoal 2.6.2 is:
 exists M2 N2, nabla W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists N2.
Subgoal 2.6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N3, nabla W, bisim_t (N1 W) (N2 W) (N W) (N3 W) /\
     bisim_up_to bisim_t (N2 W) (N3 W) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < exists M2.
Subgoal 2.6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   nabla W, bisim_t (N1 W) (N2 W) (N W) (M2 W) /\
     bisim_up_to bisim_t (N2 W) (M2 W) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < intros.
Subgoal 2.6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1) /\
     bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < case H10.
Subgoal 2.6.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (N n1) (M2 n1)
  H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1) /\
     bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < split.
Subgoal 2.6.2.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (N n1) (M2 n1)
  H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1)

Subgoal 2.6.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < unfold.
Subgoal 2.6.2.1.1:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (N n1) (M2 n1)
  H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N1 n1) (N2 n1)

Subgoal 2.6.2.1.2 is:
 bisim_up_to refl_t (N n1) (M2 n1)

Subgoal 2.6.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.6.2.1.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (N n1) (M2 n1)
  H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to refl_t (N n1) (M2 n1)

Subgoal 2.6.2.2 is:
 bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < search.
Subgoal 2.6.2.2:

  Variables: P, Q, X, N, N1, M2, N2
  CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
  H2 : oneb P (up X) N
  H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : oneb Q (up X) N1
  H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H12 : bisim_up_to refl_t (N n1) (M2 n1)
  H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
  ============================
   bisim_up_to bisim_t (N2 n1) (M2 n1) +

Subgoal 3 is:
 forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
   bisim_up_to bisim_t P R

bisimB_is_equiv_th < backchain CH.
Subgoal 3:


  ============================
   forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
     bisim_up_to bisim_t P R

bisimB_is_equiv_th < coinduction.
Subgoal 3:


  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  ============================
   forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
     bisim_up_to bisim_t P R #

bisimB_is_equiv_th < intros.
Subgoal 3:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   bisim_up_to bisim_t P R #

bisimB_is_equiv_th < unfold.
Subgoal 3.1:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.1:

  Variables: P, Q, R, A, P1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : one P A P1
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H1.
Subgoal 3.1:

  Variables: P, Q, R, A, P1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H4 to H3.
Subgoal 3.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H2.
Subgoal 3.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H13 to H10.
Subgoal 3.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists Q1.
Subgoal 3.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.1.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   one R A Q1

Subgoal 3.1.2 is:
 exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists P3.
Subgoal 3.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   exists Q2, bisim_t P1 P3 Q1 Q2 /\ bisim_up_to bisim_t P3 Q2 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists Q4.
Subgoal 3.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H11 : bisim_t P1 P3 Q2 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  ============================
   bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H11.
Subgoal 3.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H20 : bisim_t Q2 P2 Q1 Q4
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  ============================
   bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H20.
Subgoal 3.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  ============================
   bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.1.2.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  ============================
   bisim_t P1 P3 Q1 Q4

Subgoal 3.1.2.2 is:
 bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < unfold.
Subgoal 3.1.2.1.1:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  ============================
   bisim_up_to refl_t P1 P3

Subgoal 3.1.2.1.2 is:
 bisim_up_to refl_t Q1 Q4

Subgoal 3.1.2.2 is:
 bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.1.2.1.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  ============================
   bisim_up_to refl_t Q1 Q4

Subgoal 3.1.2.2 is:
 bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.1.2.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  ============================
   bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_sym to H23.
Subgoal 3.1.2.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  H26 : bisim_up_to refl_t Q3 Q2
  ============================
   bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_trans to H26 H24.
Subgoal 3.1.2.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  H26 : bisim_up_to refl_t Q3 Q2
  H27 : bisim_up_to refl_t Q3 P2
  ============================
   bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply subst_in_bisimB to H12 H27.
Subgoal 3.1.2.2:

  Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one P A P1
  H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
         bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A Q2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
          bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one R A Q1
  H21 : bisim_up_to bisim_t P2 Q4
  H22 : bisim_up_to refl_t P1 P3
  H23 : bisim_up_to refl_t Q2 Q3
  H24 : bisim_up_to refl_t Q2 P2
  H25 : bisim_up_to refl_t Q1 Q4
  H26 : bisim_up_to refl_t Q3 Q2
  H27 : bisim_up_to refl_t Q3 P2
  H28 : bisim_up_to bisim_t P3 P2
  ============================
   bisim_up_to bisim_t P3 Q4 +

Subgoal 3.2 is:
 forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < backchain CH with P = P3, Q = P2, R = Q4.
Subgoal 3.2:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.2:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (dn X) M
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H1.
Subgoal 3.2:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H5 to H3.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H2.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H13 to H10.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists N1.
Subgoal 3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   oneb R (dn X) N1 /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   oneb R (dn X) N1

Subgoal 3.2.2 is:
 exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists M2.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   exists N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists N3.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   forall W, bisim_t (M W) (M2 W) (N1 W) (N3 W) /\
     bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H11 with W = W.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H19 with W = W.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H22 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H20.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H22 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H22.
Subgoal 3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.2.2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_t (M W) (M2 W) (N1 W) (N3 W)

Subgoal 3.2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < unfold.
Subgoal 3.2.2.1.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (M W) (M2 W)

Subgoal 3.2.2.1.2 is:
 bisim_up_to refl_t (N1 W) (N3 W)

Subgoal 3.2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.2.2.1.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to refl_t (N1 W) (N3 W)

Subgoal 3.2.2.2 is:
 bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  H28 : bisim_up_to refl_t (N2 W) (N W)
  ============================
   bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_trans to H28 H26.
Subgoal 3.2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  H28 : bisim_up_to refl_t (N2 W) (N W)
  H29 : bisim_up_to refl_t (N2 W) (M1 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply subst_in_bisimB to H21 H29.
Subgoal 3.2.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (dn X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) N
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb R (dn X) N1
  H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
          bisim_up_to bisim_t (M1 W) (N3 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M1 W) (N3 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (N W) (M1 W)
  H27 : bisim_up_to refl_t (N1 W) (N3 W)
  H28 : bisim_up_to refl_t (N2 W) (N W)
  H29 : bisim_up_to refl_t (N2 W) (M1 W)
  H30 : bisim_up_to bisim_t (M2 W) (M1 W)
  ============================
   bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.3 is:
 forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < backchain CH with P = M2 W, Q = M1 W, R = N3 W.
Subgoal 3.3:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.3:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (up X) M
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H1.
Subgoal 3.3:

  Variables: P, Q, R, X, M
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H6 to H3.
Subgoal 3.3:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H2.
Subgoal 3.3:

  Variables: P, Q, R, X, M, N, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H15 to H10.
Subgoal 3.3:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists N1.
Subgoal 3.3:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   oneb R (up X) N1 /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.3.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   oneb R (up X) N1

Subgoal 3.3.2 is:
 exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists M2.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   exists N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists N3.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   nabla W, bisim_t (M W) (M2 W) (N1 W) (N3 W) /\
     bisim_up_to bisim_t (M2 W) (N3 W) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
     bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H11.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
     bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H20.
Subgoal 3.3.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
     bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.3.2.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  ============================
   bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1)

Subgoal 3.3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < unfold.
Subgoal 3.3.2.1.1:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (M n1) (M2 n1)

Subgoal 3.3.2.1.2 is:
 bisim_up_to refl_t (N1 n1) (N3 n1)

Subgoal 3.3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.3.2.1.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  ============================
   bisim_up_to refl_t (N1 n1) (N3 n1)

Subgoal 3.3.2.2 is:
 bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_sym to H23.
Subgoal 3.3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  H26 : bisim_up_to refl_t (N2 n1) (N n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_trans to H26 H24.
Subgoal 3.3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  H26 : bisim_up_to refl_t (N2 n1) (N n1)
  H27 : bisim_up_to refl_t (N2 n1) (M1 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply subst_in_bisimB to H12 H27.
Subgoal 3.3.2.2:

  Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb P (up X) M
  H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) N
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb R (up X) N1
  H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (N n1) (M1 n1)
  H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
  H26 : bisim_up_to refl_t (N2 n1) (N n1)
  H27 : bisim_up_to refl_t (N2 n1) (M1 n1)
  H28 : bisim_up_to bisim_t (M2 n1) (M1 n1)
  ============================
   bisim_up_to bisim_t (M2 n1) (N3 n1) +

Subgoal 3.4 is:
 forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < backchain CH with P = M2 n1, Q = M1 n1, R = N3 n1.
Subgoal 3.4:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : one R A Q1
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H2.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H7 to H3.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H1.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H16 to H10.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists P1.
Subgoal 3.4:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.4.1:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   one P A P1

Subgoal 3.4.2 is:
 exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists P4.
Subgoal 3.4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   exists Q2, bisim_t P1 P4 Q1 Q2 /\ bisim_up_to bisim_t P4 Q2 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists Q3.
Subgoal 3.4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H11 : bisim_t P2 P3 Q1 Q3
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  ============================
   bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H11.
Subgoal 3.4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H20 : bisim_t P1 P4 P2 Q2
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  ============================
   bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H20.
Subgoal 3.4.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  ============================
   bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.4.2.1:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  ============================
   bisim_t P1 P4 Q1 Q3

Subgoal 3.4.2.2 is:
 bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < unfold.
Subgoal 3.4.2.1.1:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  ============================
   bisim_up_to refl_t P1 P4

Subgoal 3.4.2.1.2 is:
 bisim_up_to refl_t Q1 Q3

Subgoal 3.4.2.2 is:
 bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.4.2.1.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  ============================
   bisim_up_to refl_t Q1 Q3

Subgoal 3.4.2.2 is:
 bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.4.2.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  ============================
   bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.4.2.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  H26 : bisim_up_to refl_t Q2 P2
  ============================
   bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_trans to H26 H22.
Subgoal 3.4.2.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  H26 : bisim_up_to refl_t Q2 P2
  H27 : bisim_up_to refl_t Q2 P3
  ============================
   bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply subst_in_bisimB to H21 H27.
Subgoal 3.4.2.2:

  Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : one R A Q1
  H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : one Q A P2
  H12 : bisim_up_to bisim_t P3 Q3
  H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : one P A P1
  H21 : bisim_up_to bisim_t P4 Q2
  H22 : bisim_up_to refl_t P2 P3
  H23 : bisim_up_to refl_t Q1 Q3
  H24 : bisim_up_to refl_t P1 P4
  H25 : bisim_up_to refl_t P2 Q2
  H26 : bisim_up_to refl_t Q2 P2
  H27 : bisim_up_to refl_t Q2 P3
  H28 : bisim_up_to bisim_t P4 P3
  ============================
   bisim_up_to bisim_t P4 Q3 +

Subgoal 3.5 is:
 forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
   forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < backchain CH with P = P4, Q = P3, R = Q3.
Subgoal 3.5:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.5:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb R (dn X) N
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H2.
Subgoal 3.5:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H8 to H3.
Subgoal 3.5:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H1.
Subgoal 3.5:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H16 to H10.
Subgoal 3.5:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists M1.
Subgoal 3.5:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1 /\ (exists M2 N2, forall W,
     bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.5.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   oneb P (dn X) M1

Subgoal 3.5.2 is:
 exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists M3.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   exists N2, forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < exists N2.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H11 with W = W.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply H19 with W = W.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H20.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < case H22.
Subgoal 3.5.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < split.
Subgoal 3.5.2.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_t (M1 W) (M3 W) (N W) (N2 W)

Subgoal 3.5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < unfold.
Subgoal 3.5.2.1.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (M1 W) (M3 W)

Subgoal 3.5.2.1.2 is:
 bisim_up_to refl_t (N W) (N2 W)

Subgoal 3.5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.5.2.1.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to refl_t (N W) (N2 W)

Subgoal 3.5.2.2 is:
 bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < search.
Subgoal 3.5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  ============================
   bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_sym to H27.
Subgoal 3.5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H28 : bisim_up_to refl_t (N1 W) (M W)
  ============================
   bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply bisim_trans to H28 H24.
Subgoal 3.5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H28 : bisim_up_to refl_t (N1 W) (M W)
  H29 : bisim_up_to refl_t (N1 W) (M2 W)
  ============================
   bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < apply subst_in_bisimB to H23 H29.
Subgoal 3.5.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (dn X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (dn X) M
  H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)
  H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : oneb P (dn X) M1
  H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
          bisim_up_to bisim_t (M3 W) (N1 W)
  H21 : bisim_up_to bisim_t (M2 W) (N2 W)
  H23 : bisim_up_to bisim_t (M3 W) (N1 W)
  H24 : bisim_up_to refl_t (M W) (M2 W)
  H25 : bisim_up_to refl_t (N W) (N2 W)
  H26 : bisim_up_to refl_t (M1 W) (M3 W)
  H27 : bisim_up_to refl_t (M W) (N1 W)
  H28 : bisim_up_to refl_t (N1 W) (M W)
  H29 : bisim_up_to refl_t (N1 W) (M2 W)
  H30 : bisim_up_to bisim_t (M3 W) (M2 W)
  ============================
   bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 3.6 is:
 forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
   nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < backchain CH with P = M3 W, Q = M2 W, R = N2 W.
Subgoal 3.6:

  Variables: P, Q, R
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  ============================
   forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

bisimB_is_equiv_th < intros.
Subgoal 3.6:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H2 : bisim_up_to bisim_t Q R
  H3 : oneb R (up X) N
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < case H2.
Subgoal 3.6:

  Variables: P, Q, R, X, N
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < apply H9 to H3.
Subgoal 3.6:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H1 : bisim_up_to bisim_t P Q
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < case H1.
Subgoal 3.6:

  Variables: P, Q, R, X, N, M, M2, N2
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < apply H18 to H10.
Subgoal 3.6:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < exists M1.
Subgoal 3.6:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1 /\ (exists M2 N2, nabla W,
     bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

bisimB_is_equiv_th < split.
Subgoal 3.6.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   oneb P (up X) M1

Subgoal 3.6.2 is:
 exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

bisimB_is_equiv_th < search.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

bisimB_is_equiv_th < exists M3.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   exists N2, nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

bisimB_is_equiv_th < exists N2.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

bisimB_is_equiv_th < intros.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < case H11.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < case H20.
Subgoal 3.6.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
     bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < split.
Subgoal 3.6.2.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  ============================
   bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1)

Subgoal 3.6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < unfold.
Subgoal 3.6.2.1.1:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  ============================
   bisim_up_to refl_t (M1 n1) (M3 n1)

Subgoal 3.6.2.1.2 is:
 bisim_up_to refl_t (N n1) (N2 n1)

Subgoal 3.6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < search.
Subgoal 3.6.2.1.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  ============================
   bisim_up_to refl_t (N n1) (N2 n1)

Subgoal 3.6.2.2 is:
 bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < search.
Subgoal 3.6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  H26 : bisim_up_to refl_t (N1 n1) (M n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < apply bisim_trans to H26 H22.
Subgoal 3.6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  H26 : bisim_up_to refl_t (N1 n1) (M n1)
  H27 : bisim_up_to refl_t (N1 n1) (M2 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < apply subst_in_bisimB to H21 H27.
Subgoal 3.6.2.2:

  Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
  CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
         bisim_up_to bisim_t P R +
  H3 : oneb R (up X) N
  H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
         bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
         (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
         (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
         bisim_up_to bisim_t (M2 W) (N2 W)))
  H10 : oneb Q (up X) M
  H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
  H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
          bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
  H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
          (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
          (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
          bisim_up_to bisim_t (M2 W) (N2 W)))
  H19 : oneb P (up X) M1
  H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
  H22 : bisim_up_to refl_t (M n1) (M2 n1)
  H23 : bisim_up_to refl_t (N n1) (N2 n1)
  H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
  H25 : bisim_up_to refl_t (M n1) (N1 n1)
  H26 : bisim_up_to refl_t (N1 n1) (M n1)
  H27 : bisim_up_to refl_t (N1 n1) (M2 n1)
  H28 : bisim_up_to bisim_t (M3 n1) (M2 n1)
  ============================
   bisim_up_to bisim_t (M3 n1) (N2 n1) +

bisimB_is_equiv_th < backchain CH with P = M3 n1, Q = M2 n1, R = N2 n1.
Proof completed.
Abella < Theorem faithful_par : 
forall P P1 A R1, (exists R2, one (par P R1) A P1 -> P1 = par P R2 /\
  (forall Q, one (par Q R1) A (par Q R2))) \/ (one (par P R1) A P1 ->
  (exists P2 B R2, one P B P2 /\ P1 = par P2 R2 /\ (forall Q Q1,
  one Q B Q1 -> one (par Q R1) A (par Q1 R2)))).


  ============================
   forall P P1 A R1, (exists R2, one (par P R1) A P1 -> P1 = par P R2 /\
     (forall Q, one (par Q R1) A (par Q R2))) \/ (one (par P R1) A P1 ->
     (exists P2 B R2, one P B P2 /\ P1 = par P2 R2 /\ (forall Q Q1,
     one Q B Q1 -> one (par Q R1) A (par Q1 R2))))

faithful_par < skip.
Proof completed.
Abella < Theorem bisimK_is_subst_th : 
subst_rel (bisim_up_to context_t).


  ============================
   subst_rel (bisim_up_to context_t)

bisimK_is_subst_th < skip.
Proof completed.
Abella < Theorem bisim_par_zeroEl : 
forall P, bisim_up_to refl_t (par P null) P.


  ============================
   forall P, bisim_up_to refl_t (par P null) P

bisim_par_zeroEl < skip.
Proof completed.
Abella < Theorem bisim_par_comm : 
forall P Q, bisim_up_to refl_t (par P Q) (par Q P).


  ============================
   forall P Q, bisim_up_to refl_t (par P Q) (par Q P)

bisim_par_comm < skip.
Proof completed.
Abella < Theorem bisim_par_assoc : 
forall P Q R, bisim_up_to refl_t (par (par P Q) R) (par P (par Q R)).


  ============================
   forall P Q R, bisim_up_to refl_t (par (par P Q) R) (par P (par Q R))

bisim_par_assoc < skip.
Proof completed.
Abella < Theorem bisim_par_cong_right : 
forall P Q R, bisim_up_to refl_t P Q ->
  bisim_up_to refl_t (par P R) (par Q R).


  ============================
   forall P Q R, bisim_up_to refl_t P Q ->
     bisim_up_to refl_t (par P R) (par Q R)

bisim_par_cong_right < skip.
Proof completed.
Abella < Theorem bisim_par_cong_left : 
forall P Q R, bisim_up_to refl_t P Q ->
  bisim_up_to refl_t (par R P) (par R Q).


  ============================
   forall P Q R, bisim_up_to refl_t P Q ->
     bisim_up_to refl_t (par R P) (par R Q)

bisim_par_cong_left < skip.
Proof completed.
Abella < Theorem bisim_repl_absorb : 
forall P, bisim_up_to refl_t (par (repl P) P) (repl P).


  ============================
   forall P, bisim_up_to refl_t (par (repl P) P) (repl P)

bisim_repl_absorb < skip.
Proof completed.
Abella < Theorem example_1_bisim : 
forall A B,
  bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))).


  ============================
   forall A B,
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null))))

example_1_bisim < coinduction.


  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall A B,
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) #

example_1_bisim < intros.

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) #

example_1_bisim < unfold.
Subgoal 1:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall A1 P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 ->
     (exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
     (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 1:

  Variables: A, B, A1, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
     (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H1.
Subgoal 1.1:

  Variables: A, B, A1, P1, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : one (plus (in A (x\null)) (in B (x\null))) A1 P2
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
     (exists P1 Q2,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 1.1.1:

  Variables: A, B, A1, P1, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in A (x\null)) A1 P2
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
     (exists P1 Q2,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.1.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
   (exists P1 Q2,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 1.1.2:

  Variables: A, B, A1, P1, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in B (x\null)) A1 P2
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
     (exists P1 Q2,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 1.2:

  Variables: A, B, A1, P1, X, Y, M, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : one (plus (in A (x\null)) (in B (x\null))) (up X Y) P2
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P1 Q2,
     bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 1.2.1:

  Variables: A, B, A1, P1, X, Y, M, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  H4 : one (in A (x\null)) (up X Y) P2
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P1 Q2,
     bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 1.2.2:

  Variables: A, B, A1, P1, X, Y, M, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  H4 : one (in B (x\null)) (up X Y) P2
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P1 Q2,
     bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 1.3:

  Variables: A, B, A1, P1, X, M, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (plus (in A (x\null)) (in B (x\null))) (up X) N
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P2 Q2,
     bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 1.3.1:

  Variables: A, B, A1, P1, X, M, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  H4 : oneb (in A (x\null)) (up X) N
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P2 Q2,
     bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 1.3.2 is:
 exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
   (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 1.3.2:

  Variables: A, B, A1, P1, X, M, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
  H4 : oneb (in B (x\null)) (up X) N
  ============================
   exists Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
     (exists P2 Q2,
     bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 2:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
     (exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 2:

  Variables: A, B, X, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H1.
Subgoal 2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 2.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in A (x\null)) (dn X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 2.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N,
     oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (par (repl (in X (x\null))) null) (repl (in B (x\null))).
Subgoal 2.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) (x\par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 2.1.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) (x\par (par (repl (in X (x\null))) null) (repl (in B (x\null))))

Subgoal 2.1.2 is:
 exists M2 N2, forall W,
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.1.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M2 N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 2.1.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (N2 W) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (in X (x\null))) (repl (in B (x\null))).
Subgoal 2.1.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 2.1.2.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < unfold.
Subgoal 2.1.2.1.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))

Subgoal 2.1.2.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 2.1.2.1.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))

Subgoal 2.1.2.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.1.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.1.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_cong_right to H4 with R = repl (in B (x\null)).
Subgoal 2.1.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.1.2.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 2.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < backchain CH.
Subgoal 2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in B (x\null)) (dn X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null).
Subgoal 2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) (x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 2.2.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) (x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null))

Subgoal 2.2.2 is:
 exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 2.2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (in A (x\null))) (repl (in X (x\null))).
Subgoal 2.2.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 2.2.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 2.2.2.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < unfold.
Subgoal 2.2.2.1.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))

Subgoal 2.2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 2.2.2.1.1:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))

Subgoal 2.2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.2.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_cong_left to H4 with R = repl (in A (x\null)).
Subgoal 2.2.2.1.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 2.2.2.2:

  Variables: A, B, X, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
   (exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < backchain CH.
Subgoal 3:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
     (exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 3:

  Variables: A, B, X, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H1.
Subgoal 3:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (plus (in A (x\null)) (in B (x\null))) (up X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 3.1:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in A (x\null)) (up X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3.2 is:
 exists N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
   (exists M2 N2, nabla W,
   bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 3.2:

  Variables: A, B, X, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in B (x\null)) (up X) M1
  ============================
   exists N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1,
   one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
   (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall A1 Q1,
     one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
     (exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
     (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 4:

  Variables: A, B, A1, Q1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
     (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H1.
Subgoal 4.1:

  Variables: A, B, A1, Q1, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : one (repl (in A (x\null))) A1 P1
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P2 /\
     (exists P3 Q2, bisim_t P2 P3 (par P1 (repl (in B (x\null)))) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 4.1.1:

  Variables: A, B, A1, Q1, P1, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in A (x\null)) A1 P2
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
     (exists P3 Q2,
     bisim_t P1 P3 (par (par (repl (in A (x\null))) P2) (repl (in B (x\null)))) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.1.2 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P3 Q2,
   bisim_t P1 P3 (par (par (par P2 (M Y)) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
   bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.1.3 is:
 exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
   (exists P3 Q2,
   bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
   bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.1.2:

  Variables: A, B, A1, Q1, P1, X, Y, M, P2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in A (x\null)) (up X Y) P2
  H4 : oneb (in A (x\null)) (dn X) M
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P3 Q2,
     bisim_t P1 P3 (par (par (par P2 (M Y)) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.1.3 is:
 exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
   (exists P3 Q2,
   bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
   bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.1.3:

  Variables: A, B, A1, Q1, P1, X, M, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in A (x\null)) (up X) N
  H4 : oneb (in A (x\null)) (dn X) M
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
     (exists P3 Q2,
     bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
   (exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.2:

  Variables: A, B, A1, Q1, Q2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : one (repl (in B (x\null))) A1 Q2
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
     (exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 4.2.1:

  Variables: A, B, A1, Q1, Q2, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in B (x\null)) A1 P1
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P2 /\
     (exists P3 Q1,
     bisim_t P2 P3 (par (repl (in A (x\null))) (par (repl (in B (x\null))) P1)) Q1 /\
     bisim_up_to bisim_t P3 Q1 +)

Subgoal 4.2.2 is:
 exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
   (exists P3 Q1,
   bisim_t P2 P3 (par (repl (in A (x\null))) (par (par P1 (M Y)) (repl (in B (x\null))))) Q1 /\
   bisim_up_to bisim_t P3 Q1 +)

Subgoal 4.2.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q1,
   bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.2.2:

  Variables: A, B, A1, Q1, Q2, X, Y, M, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : one (in B (x\null)) (up X Y) P1
  H4 : oneb (in B (x\null)) (dn X) M
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
     (exists P3 Q1,
     bisim_t P2 P3 (par (repl (in A (x\null))) (par (par P1 (M Y)) (repl (in B (x\null))))) Q1 /\
     bisim_up_to bisim_t P3 Q1 +)

Subgoal 4.2.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q1,
   bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
   bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.2.3:

  Variables: A, B, A1, Q1, Q2, X, M, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in B (x\null)) (up X) N
  H4 : oneb (in B (x\null)) (dn X) M
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q1,
     bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
     bisim_up_to bisim_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.3:

  Variables: A, B, A1, Q1, X, N, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M
  H3 : oneb (repl (in B (x\null))) (up X) N
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.3:

  Variables: A, B, A1, Q1, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M
  H4 : oneb (in B (x\null)) (up X) M1
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2,
     bisim_t P1 P2 (nu (y\par (M y) (par (repl (in B (x\null))) (M1 y)))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 4.4:

  Variables: A, B, A1, Q1, X, N, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (up X) M
  H3 : oneb (repl (in B (x\null))) (dn X) N
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 4.4:

  Variables: A, B, A1, Q1, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (repl (in B (x\null))) (dn X) N
  H4 : oneb (in A (x\null)) (up X) M1
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2,
     bisim_t P1 P2 (nu (y\par (par (repl (in A (x\null))) (M1 y)) (N y))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.4:

  Variables: A, B, A1, Q1, X, N, M, M1, M2
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : oneb (in A (x\null)) (up X) M1
  H5 : oneb (in B (x\null)) (dn X) M2
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2,
     bisim_t P1 P2 (nu (y\par (par (repl (in A (x\null))) (M1 y)) (par (repl (in B (x\null))) (M2 y)))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 4.5:

  Variables: A, B, A1, Q1, X, T, Y, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M
  H3 : one (repl (in B (x\null))) (up X Y) T
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.5:

  Variables: A, B, A1, Q1, X, T, Y, M, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M
  H4 : one (in B (x\null)) (up X Y) P1
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
     (exists P3 Q2,
     bisim_t P2 P3 (par (M Y) (par (repl (in B (x\null))) P1)) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
   (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 4.6:

  Variables: A, B, A1, Q1, X, Y, M, R
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in B (x\null))) (dn X) M
  H3 : one (repl (in A (x\null))) (up X Y) R
  ============================
   exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
     (exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 4.6:

  Variables: A, B, A1, Q1, X, Y, M, R, P1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in B (x\null))) (dn X) M
  H4 : one (in A (x\null)) (up X Y) P1
  ============================
   exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
     (exists P3 Q2,
     bisim_t P2 P3 (par (par (repl (in A (x\null))) P1) (M Y)) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 5 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H4.
Subgoal 5:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall X N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
     (exists M,
     oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 5:

  Variables: A, B, X, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N
  ============================
   exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
     (exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H1.
Subgoal 5.1:

  Variables: A, B, X, N, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M
  ============================
   exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_t (M1 W) (M2 W) (par (M W) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 5.1:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in A (x\null)) (dn X) M1
  ============================
   exists M2, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M2 /\
     (exists M3 N2, forall W,
     bisim_t (M2 W) (M3 W) (par (par (repl (in A (x\null))) (M1 W)) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 5.1:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M2, oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) M2 /\
     (exists M3 N2, forall W,
     bisim_t (M2 W) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (plus (in X (x\null)) (in B (x\null)))) null.
Subgoal 5.1:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) (x\par (repl (plus (in X (x\null)) (in B (x\null)))) null) /\
     (exists M3 N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 5.1.1:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) (x\par (repl (plus (in X (x\null)) (in B (x\null)))) null)

Subgoal 5.1.2 is:
 exists M3 N2, forall W,
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
   bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.1.2:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M3 N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 5.1.2:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (in X (x\null))) (repl (in B (x\null))).
Subgoal 5.1.2:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall W,
     bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 5.1.2:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 5.1.2.1:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < unfold.
Subgoal 5.1.2.1.1:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))

Subgoal 5.1.2.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 5.1.2.1.1:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))

Subgoal 5.1.2.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.1.2.1.2:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.1.2.1.2:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_cong_right to H4 with R = repl (in B (x\null)).
Subgoal 5.1.2.1.2:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
  ============================
   bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.1.2.2:

  Variables: A, B, X, N, M, M1, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
   (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < backchain CH.
Subgoal 5.2:

  Variables: A, B, X, N, N1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in B (x\null))) (dn X) N1
  ============================
   exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
     (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H2.
Subgoal 5.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in B (x\null)) (dn X) M
  ============================
   exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in B (x\null))) (M W))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < case H3.
Subgoal 5.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M1, oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (plus (in A (x\null)) (in X (x\null)))) null.
Subgoal 5.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) (x\par (repl (plus (in A (x\null)) (in X (x\null)))) null) /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 5.2.1:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) (x\par (repl (plus (in A (x\null)) (in X (x\null)))) null)

Subgoal 5.2.2 is:
 exists M2 N2, forall W,
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.2.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists M2 N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 5.2.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (N2 W) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < exists x\par (repl (in A (x\null))) (repl (in X (x\null))).
Subgoal 5.2.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall W,
     bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 5.2.2:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
     bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < split.
Subgoal 5.2.2.1:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < unfold.
Subgoal 5.2.2.1.1:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))

Subgoal 5.2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 5.2.2.1.1:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))

Subgoal 5.2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.2.2.1.2:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.2.1.2:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < apply bisim_par_cong_left to H4 with R = repl (in A (x\null)).
Subgoal 5.2.2.1.2:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < search.
Subgoal 5.2.2.2:

  Variables: A, B, X, N, N1, M, W
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +

Subgoal 6 is:
 forall X N,
   oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
   (exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < backchain CH.
Subgoal 6:

  Variables: A, B
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  ============================
   forall X N,
     oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
     (exists M,
     oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

example_1_bisim < intros.
Subgoal 6:

  Variables: A, B, X, N
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H1 : oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N
  ============================
   exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
     (exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

example_1_bisim < case H1.
Subgoal 6.1:

  Variables: A, B, X, N, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in A (x\null))) (up X) M
  ============================
   exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M1 /\
     (exists M2 N2, nabla W,
     bisim_t (M1 W) (M2 W) (par (M W) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

example_1_bisim < case H2.
Subgoal 6.1:

  Variables: A, B, X, N, M, M1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in A (x\null)) (up X) M1
  ============================
   exists M2, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M2 /\
     (exists M3 N2, nabla W,
     bisim_t (M2 W) (M3 W) (par (par (repl (in A (x\null))) (M1 W)) (repl (in B (x\null)))) (N2 W) /\
     bisim_up_to bisim_t (M3 W) (N2 W) +)

Subgoal 6.2 is:
 exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
   (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +)

example_1_bisim < case H3.
Subgoal 6.2:

  Variables: A, B, X, N, N1
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H2 : oneb (repl (in B (x\null))) (up X) N1
  ============================
   exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
     (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

example_1_bisim < case H2.
Subgoal 6.2:

  Variables: A, B, X, N, N1, M
  CH : forall A B,
         bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
  H3 : oneb (in B (x\null)) (up X) M
  ============================
   exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M1 /\
     (exists M2 N2, nabla W,
     bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in B (x\null))) (M W))) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

example_1_bisim < case H3.
Proof completed.
Abella < Theorem example_2_bisim : 
forall A,
  bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))).


  ============================
   forall A,
     bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null)))

example_2_bisim < coinduction.


  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall A,
     bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) #

example_2_bisim < intros.

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) #

example_2_bisim < unfold.
Subgoal 1:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall A1 P1, one (repl (repl (in A (x\null)))) A1 P1 -> (exists Q1,
     one (repl (in A (x\null))) A1 Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 1:

  Variables: A, A1, P1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : one (repl (repl (in A (x\null)))) A1 P1
  ============================
   exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H1.
Subgoal 1.1:

  Variables: A, A1, P1, P2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : one (repl (in A (x\null))) A1 P2
  ============================
   exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P1 Q2,
     bisim_t (par (repl (repl (in A (x\null)))) P2) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 1.1.1:

  Variables: A, A1, P1, P2, P3
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : one (in A (x\null)) A1 P3
  ============================
   exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P1 Q2,
     bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) P3)) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.1.2 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (repl (repl (in A (x\null)))) (par (par P3 (M Y)) (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H3.
Subgoal 1.1.2:

  Variables: A, A1, P1, P2, X, Y, M, P3
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : one (in A (x\null)) (up X Y) P3
  H4 : oneb (in A (x\null)) (dn X) M
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
     bisim_t (par (repl (repl (in A (x\null)))) (par (par P3 (M Y)) (repl (in A (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H3.
Subgoal 1.1.3:

  Variables: A, A1, P1, P2, X, M, N
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : oneb (in A (x\null)) (up X) N
  H4 : oneb (in A (x\null)) (dn X) M
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
     bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
   bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
   bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H3.
Subgoal 1.2:

  Variables: A, A1, P1, X, Y, M, P2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : one (repl (in A (x\null))) (up X Y) P2
  H3 : oneb (repl (in A (x\null))) (dn X) M
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
     bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 1.2:

  Variables: A, A1, P1, X, Y, M, P2, P3
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : oneb (repl (in A (x\null))) (dn X) M
  H4 : one (in A (x\null)) (up X Y) P3
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
     bisim_t (par (par (par (repl (in A (x\null))) P3) (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
     bisim_up_to bisim_t P1 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
   bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H4.
Subgoal 1.3:

  Variables: A, A1, P1, X, M, N
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (repl (in A (x\null))) (up X) N
  H3 : oneb (repl (in A (x\null))) (dn X) M
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
     bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 1.3:

  Variables: A, A1, P1, X, M, N, M1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : oneb (repl (in A (x\null))) (dn X) M
  H4 : oneb (in A (x\null)) (up X) M1
  ============================
   exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
     bisim_t (par (nu (y\par (par (repl (in A (x\null))) (M1 y)) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
   oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H4.
Subgoal 2:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
     oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 2:

  Variables: A, X, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : oneb (repl (repl (in A (x\null)))) (dn X) M
  ============================
   exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H1.
Subgoal 2:

  Variables: A, X, M, M1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (repl (in A (x\null))) (dn X) M1
  ============================
   exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
     bisim_t (par (repl (repl (in A (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : oneb (in A (x\null)) (dn X) M2
  ============================
   exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M1 N2, forall W,
     bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) (M2 W))) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H3.
Subgoal 2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists N, oneb (repl (in X (x\null))) (dn X) N /\ (exists M1 N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\par (repl (in X (x\null))) null.
Subgoal 2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   oneb (repl (in X (x\null))) (dn X) (x\par (repl (in X (x\null))) null) /\
     (exists M1 N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < split.
Subgoal 2.1:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   oneb (repl (in X (x\null))) (dn X) (x\par (repl (in X (x\null))) null)

Subgoal 2.2 is:
 exists M1 N2, forall W,
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
   bisim_up_to bisim_t (M1 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 2.2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists M1 N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (M1 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\repl (repl (in X (x\null))).
Subgoal 2.2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\repl (in X (x\null)).
Subgoal 2.2:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 2.2:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < split.
Subgoal 2.2.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < unfold.
Subgoal 2.2.1.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.1.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_cong_left to H4 with R = repl (repl (in X (x\null))).
Subgoal 2.2.1.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_repl_absorb with P = repl (in X (x\null)).
Subgoal 2.2.1.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_trans to H5 H6.
Subgoal 2.2.1.1:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
  H7 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 2.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 2.2.1.2:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.1.2:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 2.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 2.2.2:

  Variables: A, X, M, M1, M2, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
   oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < backchain CH.
Subgoal 3:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
     oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 3:

  Variables: A, X, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : oneb (repl (repl (in A (x\null)))) (up X) M
  ============================
   exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H1.
Subgoal 3:

  Variables: A, X, M, M1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (repl (in A (x\null))) (up X) M1
  ============================
   exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
     bisim_t (par (repl (repl (in A (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 3:

  Variables: A, X, M, M1, M2
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : oneb (in A (x\null)) (up X) M2
  ============================
   exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M1 N2, nabla W,
     bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) (M2 W))) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M1 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
   one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
   bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H3.
Subgoal 4:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
     one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 4:

  Variables: A, A1, Q1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : one (repl (in A (x\null))) A1 Q1
  ============================
   exists P1, one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
     bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H1.
Subgoal 4.1:

  Variables: A, A1, Q1, P1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : one (in A (x\null)) A1 P1
  ============================
   exists P2, one (repl (repl (in A (x\null)))) A1 P2 /\ (exists P3 Q2,
     bisim_t P2 P3 (par (repl (in A (x\null))) P1) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.2 is:
 exists P2, one (repl (repl (in A (x\null)))) tau P2 /\ (exists P3 Q2,
   bisim_t P2 P3 (par (par P1 (M Y)) (repl (in A (x\null)))) Q2 /\
   bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.3 is:
 exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
   bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 4.2:

  Variables: A, A1, Q1, X, Y, M, P1
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : one (in A (x\null)) (up X Y) P1
  H3 : oneb (in A (x\null)) (dn X) M
  ============================
   exists P2, one (repl (repl (in A (x\null)))) tau P2 /\ (exists P3 Q2,
     bisim_t P2 P3 (par (par P1 (M Y)) (repl (in A (x\null)))) Q2 /\
     bisim_up_to bisim_t P3 Q2 +)

Subgoal 4.3 is:
 exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
   bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
   bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 4.3:

  Variables: A, A1, Q1, X, M, N
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (in A (x\null)) (up X) N
  H3 : oneb (in A (x\null)) (dn X) M
  ============================
   exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
     bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
     bisim_up_to bisim_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 5:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
     oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 5:

  Variables: A, X, N
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : oneb (repl (in A (x\null))) (dn X) N
  ============================
   exists M, oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2,
     forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H1.
Subgoal 5:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (in A (x\null)) (dn X) M
  ============================
   exists M1, oneb (repl (repl (in A (x\null)))) (dn X) M1 /\ (exists M2 N2,
     forall W,
     bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (M W)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < case H2.
Subgoal 5:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists M1, oneb (repl (repl (in X (x\null)))) (dn X) M1 /\ (exists M2 N2,
     forall W,
     bisim_t (M1 W) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null).
Subgoal 5:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   oneb (repl (repl (in X (x\null)))) (dn X) (x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) /\
     (exists M2 N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < split.
Subgoal 5.1:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   oneb (repl (repl (in X (x\null)))) (dn X) (x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null))

Subgoal 5.2 is:
 exists M2 N2, forall W,
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
   bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 5.2:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists M2 N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\repl (repl (in X (x\null))).
Subgoal 5.2:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   exists N2, forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (N2 W) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < exists x\repl (in X (x\null)).
Subgoal 5.2:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall W,
     bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 5.2:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
     bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < split.
Subgoal 5.2.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < unfold.
Subgoal 5.2.1.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.1.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_cong_left to H3 with R = repl (repl (in X (x\null))).
Subgoal 5.2.1.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_repl_absorb with P = repl (in X (x\null)).
Subgoal 5.2.1.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_trans to H4 H5.
Subgoal 5.2.1.1:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
  H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
  H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))

Subgoal 5.2.1.2 is:
 bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 5.2.1.2:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.1.2:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
  ============================
   bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))

Subgoal 5.2.2 is:
 bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < search.
Subgoal 5.2.2:

  Variables: A, X, N, M, W
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +

Subgoal 6 is:
 forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
   oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < backchain CH.
Subgoal 6:

  Variables: A
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  ============================
   forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
     oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
     bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +))

example_2_bisim < intros.
Subgoal 6:

  Variables: A, X, N
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H1 : oneb (repl (in A (x\null))) (up X) N
  ============================
   exists M, oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2,
     nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

example_2_bisim < case H1.
Subgoal 6:

  Variables: A, X, N, M
  CH : forall A,
         bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
  H2 : oneb (in A (x\null)) (up X) M
  ============================
   exists M1, oneb (repl (repl (in A (x\null)))) (up X) M1 /\ (exists M2 N2,
     nabla W,
     bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (M W)) (N2 W) /\
     bisim_up_to bisim_t (M2 W) (N2 W) +)

example_2_bisim < case H2.
Proof completed.
Abella < Theorem example_1_context : 
forall A B P,
  bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))).


  ============================
   forall A B P,
     bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P)))

example_1_context < coinduction.


  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall A B P,
     bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) #

example_1_context < intros.

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) #

example_1_context < unfold.
Subgoal 1:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall A1 P1, one (repl (plus (in A P) (in B P))) A1 P1 -> (exists Q1,
     one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 1:

  Variables: A, B, P, A1, P1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : one (repl (plus (in A P) (in B P))) A1 P1
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
     (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H1.
Subgoal 1.1:

  Variables: A, B, P, A1, P1, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : one (plus (in A P) (in B P)) A1 P3
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 1.1.1:

  Variables: A, B, P, A1, P1, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in A P) A1 P3
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.1.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\ (exists P2 Q2,
   bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 1.1.2:

  Variables: A, B, P, A1, P1, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in B P) A1 P3
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 1.2:

  Variables: A, B, P, A1, P1, X, Y, M, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : one (plus (in A P) (in B P)) (up X Y) P3
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 1.2.1:

  Variables: A, B, P, A1, P1, X, Y, M, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  H4 : one (in A P) (up X Y) P3
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 1.2.2:

  Variables: A, B, P, A1, P1, X, Y, M, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  H4 : one (in B P) (up X Y) P3
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 1.3:

  Variables: A, B, P, A1, P1, X, M, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (plus (in A P) (in B P)) (up X) N
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 1.3.1:

  Variables: A, B, P, A1, P1, X, M, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  H4 : oneb (in A P) (up X) N
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3.2 is:
 exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
   (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 1.3.2:

  Variables: A, B, P, A1, P1, X, M, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (plus (in A P) (in B P)) (dn X) M
  H4 : oneb (in B P) (up X) N
  ============================
   exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
     (exists P2 Q2,
     bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 2:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
     oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
     forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 2:

  Variables: A, B, P, X, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : oneb (repl (plus (in A P) (in B P))) (dn X) M
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H1.
Subgoal 2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (plus (in A P) (in B P)) (dn X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 2.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in A P) (dn X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 2.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N, oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1)).
Subgoal 2.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) (x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1))) /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.1.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) (x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1)))

Subgoal 2.1.2 is:
 exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.1.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\repl (plus (in X M1) (in B M1)).
Subgoal 2.1.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (N2 W) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (in X M1)) (repl (in B M1)).
Subgoal 2.1.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 2.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1)))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) \/
     (exists P2 Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R))

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < right.
Subgoal 2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (par (repl (in X M1)) (repl (in B M1))) (M1 W).
Subgoal 2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) /\
     (exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.1.2.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 2.1.2.1.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))

Subgoal 2.1.2.1.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_refl with P = par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 2.1.2.1.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))

Subgoal 2.1.2.1.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_comm with P = M1 W, Q = repl (in B M1).
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_cong_left to H4 with R = repl (in X M1).
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = M1 W, R = repl (in B M1).
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = repl (in B M1), R = M1 W.
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_trans to H6 H5.
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_sym to H7.
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_trans to H8 H9.
Subgoal 2.1.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  H10 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 2.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.1.2.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists M1 W.
Subgoal 2.1.2.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W) /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.1.2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W)

Subgoal 2.1.2.1.2.2 is:
 par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.1.2.1.2.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 2.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.1.2.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 2.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
   (exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < backchain CH.
Subgoal 2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in B P) (dn X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N, oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) N /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x)).
Subgoal 2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) (x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x))) /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.2.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) (x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x)))

Subgoal 2.2.2 is:
 exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\repl (plus (in A M1) (in X M1)).
Subgoal 2.2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
     bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (in A M1)) (repl (in X M1)).
Subgoal 2.2.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall W,
     bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 2.2.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.2.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1)))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 2.2.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) \/
     (exists P2 Q2,
     bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) P2 (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
     (exists R, P2 = par (repl (plus (in A M1) (in X M1))) R /\
     Q2 = par (par (repl (in A M1)) (repl (in X M1))) R))

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < right.
Subgoal 2.2.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) P2 (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
     (exists R, P2 = par (repl (plus (in A M1) (in X M1))) R /\
     Q2 = par (par (repl (in A M1)) (repl (in X M1))) R)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (repl (plus (in A M1) (in X M1))) (M1 W).
Subgoal 2.2.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists Q2,
     bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
     (exists R,
     par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
     Q2 = par (par (repl (in A M1)) (repl (in X M1))) R)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (par (repl (in A M1)) (repl (in X M1))) (M1 W).
Subgoal 2.2.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) /\
     (exists R,
     par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
     par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.2.2.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 2.2.2.1.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))

Subgoal 2.2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_refl with P = par (repl (plus (in A M1) (in X M1))) (M1 W).
Subgoal 2.2.2.1.1.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))

Subgoal 2.2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.2.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in A M1), Q = repl (in X M1), R = M1 W.
Subgoal 2.2.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_sym to H4.
Subgoal 2.2.2.1.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W)))
  H5 : bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))

Subgoal 2.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.2.2.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists R,
     par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
     par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists M1 W.
Subgoal 2.2.2.1.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) (M1 W) /\
     par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 2.2.2.1.2.1:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) (M1 W)

Subgoal 2.2.2.1.2.2 is:
 par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.2.2.1.2.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)

Subgoal 2.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 2.2.2.2:

  Variables: A, B, P, X, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +

Subgoal 3 is:
 forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
   oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < backchain CH.
Subgoal 3:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
     oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
     nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 3:

  Variables: A, B, P, X, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : oneb (repl (plus (in A P) (in B P))) (up X) M
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H1.
Subgoal 3:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (plus (in A P) (in B P)) (up X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 3.1:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in A P) (up X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3.2 is:
 exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
   (exists M2 N2, nabla W,
   bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 3.2:

  Variables: A, B, P, X, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in B P) (up X) M1
  ============================
   exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
     (exists M2 N2, nabla W,
     bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
   one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 ->
     (exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 4:

  Variables: A, B, P, A1, Q1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : one (par (repl (in A P)) (repl (in B P))) A1 Q1
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H1.
Subgoal 4.1:

  Variables: A, B, P, A1, Q1, P2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : one (repl (in A P)) A1 P2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par P2 (repl (in B P))) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 4.1.1:

  Variables: A, B, P, A1, Q1, P2, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in A P) A1 P3
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (par (par (repl (in A P)) P3) (repl (in B P))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.1.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (par (par P3 (M Y)) (repl (in A P))) (repl (in B P))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.1.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
   bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
   bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.1.2:

  Variables: A, B, P, A1, Q1, P2, X, Y, M, P3
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in A P) (up X Y) P3
  H4 : oneb (in A P) (dn X) M
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (par (par (par P3 (M Y)) (repl (in A P))) (repl (in B P))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.1.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
   bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
   bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.1.3:

  Variables: A, B, P, A1, Q1, P2, X, M, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in A P) (up X) N
  H4 : oneb (in A P) (dn X) M
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.2:

  Variables: A, B, P, A1, Q1, Q2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : one (repl (in B P)) A1 Q2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
     bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 4.2.1:

  Variables: A, B, P, A1, Q1, Q2, P2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in B P) A1 P2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P3 Q1,
     bisim_context_t P1 P3 (par (repl (in A P)) (par (repl (in B P)) P2)) Q1 /\
     bisim_up_to bisim_context_t P3 Q1 +)

Subgoal 4.2.2 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q1,
   bisim_context_t P1 P3 (par (repl (in A P)) (par (par P2 (M Y)) (repl (in B P)))) Q1 /\
   bisim_up_to bisim_context_t P3 Q1 +)

Subgoal 4.2.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.2.2:

  Variables: A, B, P, A1, Q1, Q2, X, Y, M, P2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : one (in B P) (up X Y) P2
  H4 : oneb (in B P) (dn X) M
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q1,
     bisim_context_t P1 P3 (par (repl (in A P)) (par (par P2 (M Y)) (repl (in B P)))) Q1 /\
     bisim_up_to bisim_context_t P3 Q1 +)

Subgoal 4.2.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
   bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
   bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.2.3:

  Variables: A, B, P, A1, Q1, Q2, X, M, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in B P) (up X) N
  H4 : oneb (in B P) (dn X) M
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
     bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
     bisim_up_to bisim_context_t P2 Q1 +)

Subgoal 4.3 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.3:

  Variables: A, B, P, A1, Q1, X, N, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (dn X) M
  H3 : oneb (repl (in B P)) (up X) N
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.3:

  Variables: A, B, P, A1, Q1, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (dn X) M
  H4 : oneb (in B P) (up X) M1
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (nu (y\par (M y) (par (repl (in B P)) (M1 y)))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.4 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 4.4:

  Variables: A, B, P, A1, Q1, X, N, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (up X) M
  H3 : oneb (repl (in B P)) (dn X) N
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 4.4:

  Variables: A, B, P, A1, Q1, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (repl (in B P)) (dn X) N
  H4 : oneb (in A P) (up X) M1
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (nu (y\par (par (repl (in A P)) (M1 y)) (N y))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.4:

  Variables: A, B, P, A1, Q1, X, N, M, M1, M2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : oneb (in A P) (up X) M1
  H5 : oneb (in B P) (dn X) M2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (nu (y\par (par (repl (in A P)) (M1 y)) (par (repl (in B P)) (M2 y)))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.5 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (M Y) T) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 4.5:

  Variables: A, B, P, A1, Q1, X, T, Y, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (dn X) M
  H3 : one (repl (in B P)) (up X Y) T
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (par (M Y) T) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.5:

  Variables: A, B, P, A1, Q1, X, T, Y, M, P2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (dn X) M
  H4 : one (in B P) (up X Y) P2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par (M Y) (par (repl (in B P)) P2)) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.6 is:
 exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par R (M Y)) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 4.6:

  Variables: A, B, P, A1, Q1, X, Y, M, R
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in B P)) (dn X) M
  H3 : one (repl (in A P)) (up X Y) R
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (par R (M Y)) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 4.6:

  Variables: A, B, P, A1, Q1, X, Y, M, R, P2
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in B P)) (dn X) M
  H4 : one (in A P) (up X Y) P2
  ============================
   exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par (par (repl (in A P)) P2) (M Y)) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 5 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H4.
Subgoal 5:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
     (exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\
     (exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 5:

  Variables: A, B, P, X, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : oneb (par (repl (in A P)) (repl (in B P))) (dn X) N
  ============================
   exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
     forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H1.
Subgoal 5.1:

  Variables: A, B, P, X, N, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (dn X) M
  ============================
   exists M1, oneb (repl (plus (in A P) (in B P))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_context_t (M1 W) (M2 W) (par (M W) (repl (in B P))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 5.1:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in A P) (dn X) M1
  ============================
   exists M2, oneb (repl (plus (in A P) (in B P))) (dn X) M2 /\
     (exists M3 N2, forall W,
     bisim_context_t (M2 W) (M3 W) (par (par (repl (in A P)) (M1 W)) (repl (in B P))) (N2 W) /\
     bisim_up_to bisim_context_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 5.1:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M2, oneb (repl (plus (in X M1) (in B M1))) (dn X) M2 /\
     (exists M3 N2, forall W,
     bisim_context_t (M2 W) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (plus (in X M1) (in B M1))) (M1 x).
Subgoal 5.1:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (repl (plus (in X M1) (in B M1))) (dn X) (x\par (repl (plus (in X M1) (in B M1))) (M1 x)) /\
     (exists M3 N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (M3 W) (N2 W) +)

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.1.1:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (repl (plus (in X M1) (in B M1))) (dn X) (x\par (repl (plus (in X M1) (in B M1))) (M1 x))

Subgoal 5.1.2 is:
 exists M3 N2, forall W,
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
   bisim_up_to bisim_context_t (M3 W) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.1.2:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M3 N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (M3 W) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\repl (plus (in X M1) (in B M1)).
Subgoal 5.1.2:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (N2 W) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (in X M1)) (repl (in B M1)).
Subgoal 5.1.2:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall W,
     bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 5.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
     bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1)))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 5.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) \/
     (exists P2 Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R))

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < right.
Subgoal 5.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 5.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists Q2,
     bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
     (exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (par (repl (in X M1)) (repl (in B M1))) (M1 W).
Subgoal 5.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) /\
     (exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.1.2.1.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 5.1.2.1.1.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))

Subgoal 5.1.2.1.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_refl with P = par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 5.1.2.1.1.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))

Subgoal 5.1.2.1.1.2 is:
 bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_comm with P = M1 W, Q = repl (in B M1).
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_cong_left to H4 with R = repl (in X M1).
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = M1 W, R = repl (in B M1).
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = repl (in B M1), R = M1 W.
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_trans to H6 H5.
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_sym to H7.
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_trans to H8 H9.
Subgoal 5.1.2.1.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
  H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
  H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
  H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  H10 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
  ============================
   bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))

Subgoal 5.1.2.1.2 is:
 exists R,
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.1.2.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists R,
     par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists M1 W.
Subgoal 5.1.2.1.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W) /\
     par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.1.2.1.2.1:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W)

Subgoal 5.1.2.1.2.2 is:
 par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.1.2.1.2.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)

Subgoal 5.1.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.1.2.2:

  Variables: A, B, P, X, N, M, M1, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +

Subgoal 5.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
   forall W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < backchain CH.
Subgoal 5.2:

  Variables: A, B, P, X, N, N1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in B P)) (dn X) N1
  ============================
   exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
     forall W,
     bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H2.
Subgoal 5.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in B P) (dn X) M
  ============================
   exists M1, oneb (repl (plus (in A P) (in B P))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (par (repl (in B P)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < case H3.
Subgoal 5.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M1, oneb (repl (plus (in A M) (in X M))) (dn X) M1 /\
     (exists M2 N2, forall W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (plus (in A M) (in X M))) (M x).
Subgoal 5.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (repl (plus (in A M) (in X M))) (dn X) (x\par (repl (plus (in A M) (in X M))) (M x)) /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.2.1:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   oneb (repl (plus (in A M) (in X M))) (dn X) (x\par (repl (plus (in A M) (in X M))) (M x))

Subgoal 5.2.2 is:
 exists M2 N2, forall W,
   bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.2.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists M2 N2, forall W,
     bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\repl (plus (in A M) (in X M)).
Subgoal 5.2.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists x\par (repl (in A M)) (repl (in X M)).
Subgoal 5.2.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall W,
     bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) /\
     bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 5.2.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) /\
     bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.2.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M)))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 5.2.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) \/
     (exists P2 Q2,
     bisim_t (par (repl (plus (in A M) (in X M))) (M W)) P2 (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
     (exists R, P2 = par (repl (plus (in A M) (in X M))) R /\
     Q2 = par (par (repl (in A M)) (repl (in X M))) R))

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < right.
Subgoal 5.2.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (plus (in A M) (in X M))) (M W)) P2 (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
     (exists R, P2 = par (repl (plus (in A M) (in X M))) R /\
     Q2 = par (par (repl (in A M)) (repl (in X M))) R)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (repl (plus (in A M) (in X M))) (M W).
Subgoal 5.2.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists Q2,
     bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
     (exists R,
     par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
     Q2 = par (par (repl (in A M)) (repl (in X M))) R)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists par (par (repl (in A M)) (repl (in X M))) (M W).
Subgoal 5.2.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W)) /\
     (exists R,
     par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
     par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.2.2.1.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < unfold.
Subgoal 5.2.2.1.1.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))

Subgoal 5.2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_refl with P = par (repl (plus (in A M) (in X M))) (M W).
Subgoal 5.2.2.1.1.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))
  ============================
   bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))

Subgoal 5.2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.2.2.1.1.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_par_assoc with P = repl (in A M), Q = repl (in X M), R = M W.
Subgoal 5.2.2.1.1.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (par (repl (in A M)) (repl (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W)))
  ============================
   bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < apply bisim_sym to H4.
Subgoal 5.2.2.1.1.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H4 : bisim_up_to refl_t (par (par (repl (in A M)) (repl (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W)))
  H5 : bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
  ============================
   bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))

Subgoal 5.2.2.1.2 is:
 exists R,
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.2.2.1.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   exists R,
     par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
     par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < exists M W.
Subgoal 5.2.2.1.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) (M W) /\
     par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < split.
Subgoal 5.2.2.1.2.1:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) (M W)

Subgoal 5.2.2.1.2.2 is:
 par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.2.2.1.2.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)

Subgoal 5.2.2.2 is:
 bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < search.
Subgoal 5.2.2.2:

  Variables: A, B, P, X, N, N1, M, W
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +

Subgoal 6 is:
 forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
   (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < backchain CH.
Subgoal 6:

  Variables: A, B, P
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  ============================
   forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
     (exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\
     (exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_1_context < intros.
Subgoal 6:

  Variables: A, B, P, X, N
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H1 : oneb (par (repl (in A P)) (repl (in B P))) (up X) N
  ============================
   exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
     nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_1_context < case H1.
Subgoal 6.1:

  Variables: A, B, P, X, N, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in A P)) (up X) M
  ============================
   exists M1, oneb (repl (plus (in A P) (in B P))) (up X) M1 /\
     (exists M2 N2, nabla W,
     bisim_context_t (M1 W) (M2 W) (par (M W) (repl (in B P))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_1_context < case H2.
Subgoal 6.1:

  Variables: A, B, P, X, N, M, M1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in A P) (up X) M1
  ============================
   exists M2, oneb (repl (plus (in A P) (in B P))) (up X) M2 /\
     (exists M3 N2, nabla W,
     bisim_context_t (M2 W) (M3 W) (par (par (repl (in A P)) (M1 W)) (repl (in B P))) (N2 W) /\
     bisim_up_to bisim_context_t (M3 W) (N2 W) +)

Subgoal 6.2 is:
 exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
   nabla W,
   bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_1_context < case H3.
Subgoal 6.2:

  Variables: A, B, P, X, N, N1
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H2 : oneb (repl (in B P)) (up X) N1
  ============================
   exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
     nabla W,
     bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_1_context < case H2.
Subgoal 6.2:

  Variables: A, B, P, X, N, N1, M
  CH : forall A B P,
         bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
  H3 : oneb (in B P) (up X) M
  ============================
   exists M1, oneb (repl (plus (in A P) (in B P))) (up X) M1 /\
     (exists M2 N2, nabla W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (par (repl (in B P)) (M W))) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_1_context < case H3.
Proof completed.
Abella < Theorem example_2_context : 
forall A P,
  bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)).


  ============================
   forall A P,
     bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P))

example_2_context < coinduction.


  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall A P,
     bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) #

example_2_context < intros.

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) #

example_2_context < unfold.
Subgoal 1:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall A1 P1, one (repl (repl (in A P))) A1 P1 -> (exists Q1,
     one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 1:

  Variables: A, P, A1, P1
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : one (repl (repl (in A P))) A1 P1
  ============================
   exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H1.
Subgoal 1.1:

  Variables: A, P, A1, P1, P3
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : one (repl (in A P)) A1 P3
  ============================
   exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
     bisim_context_t (par (repl (repl (in A P))) P3) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 1.1.1:

  Variables: A, P, A1, P1, P3, P4
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : one (in A P) A1 P4
  ============================
   exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
     bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) P4)) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.1.2 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (repl (repl (in A P))) (par (par P4 (M Y)) (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H3.
Subgoal 1.1.2:

  Variables: A, P, A1, P1, P3, X, Y, M, P4
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : one (in A P) (up X Y) P4
  H4 : oneb (in A P) (dn X) M
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (repl (repl (in A P))) (par (par P4 (M Y)) (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H3.
Subgoal 1.1.3:

  Variables: A, P, A1, P1, P3, X, M, N
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : oneb (in A P) (up X) N
  H4 : oneb (in A P) (dn X) M
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.2 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H3.
Subgoal 1.2:

  Variables: A, P, A1, P1, X, Y, M, P3
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : one (repl (in A P)) (up X Y) P3
  H3 : oneb (repl (in A P)) (dn X) M
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 1.2:

  Variables: A, P, A1, P1, X, Y, M, P3, P4
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : oneb (repl (in A P)) (dn X) M
  H4 : one (in A P) (up X Y) P4
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (par (par (repl (in A P)) P4) (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 1.3 is:
 exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
   bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H4.
Subgoal 1.3:

  Variables: A, P, A1, P1, X, M, N
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (repl (in A P)) (up X) N
  H3 : oneb (repl (in A P)) (dn X) M
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 1.3:

  Variables: A, P, A1, P1, X, M, N, M1
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : oneb (repl (in A P)) (dn X) M
  H4 : oneb (in A P) (up X) M1
  ============================
   exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
     bisim_context_t (par (nu (y\par (par (repl (in A P)) (M1 y)) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 2 is:
 forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
   oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H4.
Subgoal 2:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
     oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 2:

  Variables: A, P, X, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : oneb (repl (repl (in A P))) (dn X) M
  ============================
   exists N, oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H1.
Subgoal 2:

  Variables: A, P, X, M, M1
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (repl (in A P)) (dn X) M1
  ============================
   exists N, oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
     bisim_context_t (par (repl (repl (in A P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : oneb (in A P) (dn X) M2
  ============================
   exists N, oneb (repl (in A P)) (dn X) N /\ (exists M1 N2, forall W,
     bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) (M2 W))) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H3.
Subgoal 2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists N, oneb (repl (in X M2)) (dn X) N /\ (exists M1 N2, forall W,
     bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\par (repl (in X M2)) (M2 x).
Subgoal 2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   oneb (repl (in X M2)) (dn X) (x\par (repl (in X M2)) (M2 x)) /\
     (exists M1 N2, forall W,
     bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
     bisim_up_to bisim_context_t (M1 W) (N2 W) +)

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 2.1:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   oneb (repl (in X M2)) (dn X) (x\par (repl (in X M2)) (M2 x))

Subgoal 2.2 is:
 exists M1 N2, forall W,
   bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
   bisim_up_to bisim_context_t (M1 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 2.2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists M1 N2, forall W,
     bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
     bisim_up_to bisim_context_t (M1 W) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\repl (repl (in X M2)).
Subgoal 2.2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (N2 W) /\
     bisim_up_to bisim_context_t (repl (repl (in X M2))) (N2 W) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\repl (in X M2).
Subgoal 2.2:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall W,
     bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) /\
     bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 2.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) /\
     bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 2.2.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2))

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < unfold.
Subgoal 2.2.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) \/
     (exists P2 Q2,
     bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) P2 (par (repl (in X M2)) (M2 W)) Q2 /\
     (exists R, P2 = par (repl (repl (in X M2))) R /\
     Q2 = par (repl (in X M2)) R))

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < right.
Subgoal 2.2.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) P2 (par (repl (in X M2)) (M2 W)) Q2 /\
     (exists R, P2 = par (repl (repl (in X M2))) R /\
     Q2 = par (repl (in X M2)) R)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists par (repl (repl (in X M2))) (M2 W).
Subgoal 2.2.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists Q2,
     bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) Q2 /\
     (exists R,
     par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
     Q2 = par (repl (in X M2)) R)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists par (repl (in X M2)) (M2 W).
Subgoal 2.2.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W)) /\
     (exists R,
     par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
     par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 2.2.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < unfold.
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_repl_absorb with P = repl (in X M2).
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_par_cong_right to H4 with R = M2 W.
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_par_assoc with P = repl (repl (in X M2)), Q = repl (in X M2), R = M2 W.
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
  H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_sym to H6.
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
  H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
  H7 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_trans to H7 H5.
Subgoal 2.2.1.1.1:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
  H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
  H7 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W))
  H8 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))

Subgoal 2.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 2.2.1.1.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_refl with P = par (repl (in X M2)) (M2 W).
Subgoal 2.2.1.1.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H4 : bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
  ============================
   bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))

Subgoal 2.2.1.2 is:
 exists R,
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
   par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 2.2.1.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists R,
     par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
     par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists M2 W.
Subgoal 2.2.1.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) (M2 W) /\
     par (repl (in X M2)) (M2 W) = par (repl (in X M2)) (M2 W)

Subgoal 2.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 2.2.2:

  Variables: A, P, X, M, M1, M2, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +

Subgoal 3 is:
 forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
   oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < backchain CH.
Subgoal 3:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
     oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 3:

  Variables: A, P, X, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : oneb (repl (repl (in A P))) (up X) M
  ============================
   exists N, oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H1.
Subgoal 3:

  Variables: A, P, X, M, M1
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (repl (in A P)) (up X) M1
  ============================
   exists N, oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
     bisim_context_t (par (repl (repl (in A P))) (M1 W)) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 3:

  Variables: A, P, X, M, M1, M2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : oneb (in A P) (up X) M2
  ============================
   exists N, oneb (repl (in A P)) (up X) N /\ (exists M1 N2, nabla W,
     bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) (M2 W))) (M1 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M1 W) (N2 W) +)

Subgoal 4 is:
 forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
   one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H3.
Subgoal 4:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
     one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 4:

  Variables: A, P, A1, Q1
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : one (repl (in A P)) A1 Q1
  ============================
   exists P1, one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H1.
Subgoal 4.1:

  Variables: A, P, A1, Q1, P2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : one (in A P) A1 P2
  ============================
   exists P1, one (repl (repl (in A P))) A1 P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par (repl (in A P)) P2) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.2 is:
 exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P3 Q2,
   bisim_context_t P1 P3 (par (par P2 (M Y)) (repl (in A P))) Q2 /\
   bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.3 is:
 exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 4.2:

  Variables: A, P, A1, Q1, X, Y, M, P2
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : one (in A P) (up X Y) P2
  H3 : oneb (in A P) (dn X) M
  ============================
   exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P3 Q2,
     bisim_context_t P1 P3 (par (par P2 (M Y)) (repl (in A P))) Q2 /\
     bisim_up_to bisim_context_t P3 Q2 +)

Subgoal 4.3 is:
 exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
   bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
   bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 4.3:

  Variables: A, P, A1, Q1, X, M, N
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (in A P) (up X) N
  H3 : oneb (in A P) (dn X) M
  ============================
   exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
     bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
     bisim_up_to bisim_context_t P2 Q2 +)

Subgoal 5 is:
 forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
   oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 5:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
     oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 5:

  Variables: A, P, X, N
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : oneb (repl (in A P)) (dn X) N
  ============================
   exists M, oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H1.
Subgoal 5:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (in A P) (dn X) M
  ============================
   exists M1, oneb (repl (repl (in A P))) (dn X) M1 /\ (exists M2 N2,
     forall W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < case H2.
Subgoal 5:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists M1, oneb (repl (repl (in X M))) (dn X) M1 /\ (exists M2 N2,
     forall W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\par (repl (repl (in X M))) (par (repl (in X M)) (M x)).
Subgoal 5:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   oneb (repl (repl (in X M))) (dn X) (x\par (repl (repl (in X M))) (par (repl (in X M)) (M x))) /\
     (exists M2 N2, forall W,
     bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 5.1:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   oneb (repl (repl (in X M))) (dn X) (x\par (repl (repl (in X M))) (par (repl (in X M)) (M x)))

Subgoal 5.2 is:
 exists M2 N2, forall W,
   bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 5.2:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists M2 N2, forall W,
     bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\repl (repl (in X M)).
Subgoal 5.2:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists N2, forall W,
     bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (repl (repl (in X M))) (N2 W) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists x\repl (in X M).
Subgoal 5.2:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall W,
     bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) /\
     bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 5.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) /\
     bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 5.2.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M))

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < unfold.
Subgoal 5.2.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) \/
     (exists P2 Q2,
     bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) P2 (par (repl (in X M)) (M W)) Q2 /\
     (exists R, P2 = par (repl (repl (in X M))) R /\
     Q2 = par (repl (in X M)) R))

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < right.
Subgoal 5.2.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists P2 Q2,
     bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) P2 (par (repl (in X M)) (M W)) Q2 /\
     (exists R, P2 = par (repl (repl (in X M))) R /\
     Q2 = par (repl (in X M)) R)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists par (repl (repl (in X M))) (M W).
Subgoal 5.2.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists Q2,
     bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) Q2 /\
     (exists R,
     par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
     Q2 = par (repl (in X M)) R)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists par (repl (in X M)) (M W).
Subgoal 5.2.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W)) /\
     (exists R,
     par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
     par (repl (in X M)) (M W) = par (repl (in X M)) R)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < split.
Subgoal 5.2.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < unfold.
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_repl_absorb with P = repl (in X M).
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_par_cong_right to H3 with R = M W.
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
  H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_par_assoc with P = repl (repl (in X M)), Q = repl (in X M), R = M W.
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
  H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_sym to H5.
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
  H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
  H6 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (par (repl (repl (in X M))) (repl (in X M))) (M W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_trans to H6 H4.
Subgoal 5.2.1.1.1:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
  H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
  H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
  H6 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (par (repl (repl (in X M))) (repl (in X M))) (M W))
  H7 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
  ============================
   bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))

Subgoal 5.2.1.1.2 is:
 bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 5.2.1.1.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < apply bisim_refl with P = par (repl (in X M)) (M W).
Subgoal 5.2.1.1.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H3 : bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
  ============================
   bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))

Subgoal 5.2.1.2 is:
 exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
   par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 5.2.1.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   exists R,
     par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
     par (repl (in X M)) (M W) = par (repl (in X M)) R

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < exists M W.
Subgoal 5.2.1.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) (M W) /\
     par (repl (in X M)) (M W) = par (repl (in X M)) (M W)

Subgoal 5.2.2 is:
 bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < search.
Subgoal 5.2.2:

  Variables: A, P, X, N, M, W
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +

Subgoal 6 is:
 forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
   oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
   bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
   bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < backchain CH.
Subgoal 6:

  Variables: A, P
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  ============================
   forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
     oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +))

example_2_context < intros.
Subgoal 6:

  Variables: A, P, X, N
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H1 : oneb (repl (in A P)) (up X) N
  ============================
   exists M, oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
     bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_2_context < case H1.
Subgoal 6:

  Variables: A, P, X, N, M
  CH : forall A P,
         bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
  H2 : oneb (in A P) (up X) M
  ============================
   exists M1, oneb (repl (repl (in A P))) (up X) M1 /\ (exists M2 N2,
     nabla W,
     bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (M W)) (N2 W) /\
     bisim_up_to bisim_context_t (M2 W) (N2 W) +)

example_2_context < case H2.
Proof completed.
Abella < Goodbye.